home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / dev / c / cxref_1_4a.lha / parse-lex.c < prev    next >
C/C++ Source or Header  |  1997-12-07  |  117KB  |  3,552 lines

  1. /* A lexical scanner generated by flex */
  2.  
  3. /* Scanner skeleton version:
  4.  * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
  5.  */
  6.  
  7. #define FLEX_SCANNER
  8. #define YY_FLEX_MAJOR_VERSION 2
  9. #define YY_FLEX_MINOR_VERSION 5
  10.  
  11. #include <stdio.h>
  12.  
  13.  
  14. /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  15. #ifdef c_plusplus
  16. #ifndef __cplusplus
  17. #define __cplusplus
  18. #endif
  19. #endif
  20.  
  21.  
  22. #ifdef __cplusplus
  23.  
  24. #include <stdlib.h>
  25. #include <unistd.h>
  26.  
  27. /* Use prototypes in function declarations. */
  28. #define YY_USE_PROTOS
  29.  
  30. /* The "const" storage-class-modifier is valid. */
  31. #define YY_USE_CONST
  32.  
  33. #else    /* ! __cplusplus */
  34.  
  35. #if __STDC__
  36.  
  37. #define YY_USE_PROTOS
  38. #define YY_USE_CONST
  39.  
  40. #endif    /* __STDC__ */
  41. #endif    /* ! __cplusplus */
  42.  
  43. #ifdef __TURBOC__
  44.  #pragma warn -rch
  45.  #pragma warn -use
  46. #include <io.h>
  47. #include <stdlib.h>
  48. #define YY_USE_CONST
  49. #define YY_USE_PROTOS
  50. #endif
  51.  
  52. #ifdef YY_USE_CONST
  53. #define yyconst const
  54. #else
  55. #define yyconst
  56. #endif
  57.  
  58.  
  59. #ifdef YY_USE_PROTOS
  60. #define YY_PROTO(proto) proto
  61. #else
  62. #define YY_PROTO(proto) ()
  63. #endif
  64.  
  65. /* Returned upon end-of-file. */
  66. #define YY_NULL 0
  67.  
  68. /* Promotes a possibly negative, possibly signed char to an unsigned
  69.  * integer for use as an array index.  If the signed char is negative,
  70.  * we want to instead treat it as an 8-bit unsigned char, hence the
  71.  * double cast.
  72.  */
  73. #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
  74.  
  75. /* Enter a start condition.  This macro really ought to take a parameter,
  76.  * but we do it the disgusting crufty way forced on us by the ()-less
  77.  * definition of BEGIN.
  78.  */
  79. #define BEGIN yy_start = 1 + 2 *
  80.  
  81. /* Translate the current start state into a value that can be later handed
  82.  * to BEGIN to return to the state.  The YYSTATE alias is for lex
  83.  * compatibility.
  84.  */
  85. #define YY_START ((yy_start - 1) / 2)
  86. #define YYSTATE YY_START
  87.  
  88. /* Action number for EOF rule of a given start state. */
  89. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  90.  
  91. /* Special action meaning "start processing a new file". */
  92. #define YY_NEW_FILE yyrestart( yyin )
  93.  
  94. #define YY_END_OF_BUFFER_CHAR 0
  95.  
  96. /* Size of default input buffer. */
  97. #define YY_BUF_SIZE 16384
  98.  
  99. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  100.  
  101. extern int yyleng;
  102. extern FILE *yyin, *yyout;
  103.  
  104. #define EOB_ACT_CONTINUE_SCAN 0
  105. #define EOB_ACT_END_OF_FILE 1
  106. #define EOB_ACT_LAST_MATCH 2
  107.  
  108. /* The funky do-while in the following #define is used to turn the definition
  109.  * int a single C statement (which needs a semi-colon terminator).  This
  110.  * avoids problems with code like:
  111.  *
  112.  *     if ( condition_holds )
  113.  *        yyless( 5 );
  114.  *    else
  115.  *        do_something_else();
  116.  *
  117.  * Prior to using the do-while the compiler would get upset at the
  118.  * "else" because it interpreted the "if" statement as being all
  119.  * done when it reached the ';' after the yyless() call.
  120.  */
  121.  
  122. /* Return all but the first 'n' matched characters back to the input stream. */
  123.  
  124. #define yyless(n) \
  125.     do \
  126.         { \
  127.         /* Undo effects of setting up yytext. */ \
  128.         *yy_cp = yy_hold_char; \
  129.         YY_RESTORE_YY_MORE_OFFSET \
  130.         yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
  131.         YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  132.         } \
  133.     while ( 0 )
  134.  
  135. #define unput(c) yyunput( c, yytext_ptr )
  136.  
  137. /* The following is because we cannot portably get our hands on size_t
  138.  * (without autoconf's help, which isn't available because we want
  139.  * flex-generated scanners to compile on their own).
  140.  */
  141. typedef unsigned int yy_size_t;
  142.  
  143.  
  144. struct yy_buffer_state
  145.     {
  146.     FILE *yy_input_file;
  147.  
  148.     char *yy_ch_buf;        /* input buffer */
  149.     char *yy_buf_pos;        /* current position in input buffer */
  150.  
  151.     /* Size of input buffer in bytes, not including room for EOB
  152.      * characters.
  153.      */
  154.     yy_size_t yy_buf_size;
  155.  
  156.     /* Number of characters read into yy_ch_buf, not including EOB
  157.      * characters.
  158.      */
  159.     int yy_n_chars;
  160.  
  161.     /* Whether we "own" the buffer - i.e., we know we created it,
  162.      * and can realloc() it to grow it, and should free() it to
  163.      * delete it.
  164.      */
  165.     int yy_is_our_buffer;
  166.  
  167.     /* Whether this is an "interactive" input source; if so, and
  168.      * if we're using stdio for input, then we want to use getc()
  169.      * instead of fread(), to make sure we stop fetching input after
  170.      * each newline.
  171.      */
  172.     int yy_is_interactive;
  173.  
  174.     /* Whether we're considered to be at the beginning of a line.
  175.      * If so, '^' rules will be active on the next match, otherwise
  176.      * not.
  177.      */
  178.     int yy_at_bol;
  179.  
  180.     /* Whether to try to fill the input buffer when we reach the
  181.      * end of it.
  182.      */
  183.     int yy_fill_buffer;
  184.  
  185.     int yy_buffer_status;
  186. #define YY_BUFFER_NEW 0
  187. #define YY_BUFFER_NORMAL 1
  188.     /* When an EOF's been seen but there's still some text to process
  189.      * then we mark the buffer as YY_EOF_PENDING, to indicate that we
  190.      * shouldn't try reading from the input source any more.  We might
  191.      * still have a bunch of tokens to match, though, because of
  192.      * possible backing-up.
  193.      *
  194.      * When we actually see the EOF, we change the status to "new"
  195.      * (via yyrestart()), so that the user can continue scanning by
  196.      * just pointing yyin at a new input file.
  197.      */
  198. #define YY_BUFFER_EOF_PENDING 2
  199.     };
  200.  
  201. static YY_BUFFER_STATE yy_current_buffer = 0;
  202.  
  203. /* We provide macros for accessing buffer states in case in the
  204.  * future we want to put the buffer states in a more general
  205.  * "scanner state".
  206.  */
  207. #define YY_CURRENT_BUFFER yy_current_buffer
  208.  
  209.  
  210. /* yy_hold_char holds the character lost when yytext is formed. */
  211. static char yy_hold_char;
  212.  
  213. static int yy_n_chars;        /* number of characters read into yy_ch_buf */
  214.  
  215.  
  216. int yyleng;
  217.  
  218. /* Points to current character in buffer. */
  219. static char *yy_c_buf_p = (char *) 0;
  220. static int yy_init = 1;        /* whether we need to initialize */
  221. static int yy_start = 0;    /* start state number */
  222.  
  223. /* Flag which is used to allow yywrap()'s to do buffer switches
  224.  * instead of setting up a fresh yyin.  A bit of a hack ...
  225.  */
  226. static int yy_did_buffer_switch_on_eof;
  227.  
  228. void yyrestart YY_PROTO(( FILE *input_file ));
  229.  
  230. void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
  231. void yy_load_buffer_state YY_PROTO(( void ));
  232. YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
  233. void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  234. void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
  235. void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  236. #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
  237.  
  238. YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
  239. YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
  240. YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
  241.  
  242. static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
  243. static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
  244. static void yy_flex_free YY_PROTO(( void * ));
  245.  
  246. #define yy_new_buffer yy_create_buffer
  247.  
  248. #define yy_set_interactive(is_interactive) \
  249.     { \
  250.     if ( ! yy_current_buffer ) \
  251.         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
  252.     yy_current_buffer->yy_is_interactive = is_interactive; \
  253.     }
  254.  
  255. #define yy_set_bol(at_bol) \
  256.     { \
  257.     if ( ! yy_current_buffer ) \
  258.         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
  259.     yy_current_buffer->yy_at_bol = at_bol; \
  260.     }
  261.  
  262. #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
  263.  
  264.  
  265. #define YY_USES_REJECT
  266. typedef unsigned char YY_CHAR;
  267. FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  268. typedef int yy_state_type;
  269. extern char *yytext;
  270. #define yytext_ptr yytext
  271.  
  272. static yy_state_type yy_get_previous_state YY_PROTO(( void ));
  273. static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
  274. static int yy_get_next_buffer YY_PROTO(( void ));
  275. static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
  276.  
  277. /* Done after the current pattern has been matched and before the
  278.  * corresponding action - sets up yytext.
  279.  */
  280. #define YY_DO_BEFORE_ACTION \
  281.     yytext_ptr = yy_bp; \
  282.     yyleng = (int) (yy_cp - yy_bp); \
  283.     yy_hold_char = *yy_cp; \
  284.     *yy_cp = '\0'; \
  285.     yy_c_buf_p = yy_cp;
  286.  
  287. #define YY_NUM_RULES 229
  288. #define YY_END_OF_BUFFER 230
  289. static yyconst short int yy_acclist[858] =
  290.     {   0,
  291.       230,  228,  229,  227,  229,  228,  229,  204,  228,  229,
  292.       228,  229,   35,  228,  229,  210,  228,  229,  203,  228,
  293.       229,  228,  229,  197,  228,  229,  199,  228,  229,  208,
  294.       228,  229,  207,  228,  229,  194,  228,  229,  206,  228,
  295.       229,  202,  228,  229,  209,  228,  229,  219,  228,  229,
  296.       219,  228,  229,  195,  228,  229,  188,  228,  229,  211,
  297.       228,  229,  196,  228,  229,  212,  228,  229,  215,  228,
  298.       229,  216,  228,  229,  216,  228,  229,  200,  228,  229,
  299.       201,  228,  229,  213,  228,  229,  216,  228,  229,  216,
  300.       228,  229,  216,  228,  229,  216,  228,  229,  216,  228,
  301.  
  302.       229,  216,  228,  229,  216,  228,  229,  216,  228,  229,
  303.       216,  228,  229,  216,  228,  229,  216,  228,  229,  216,
  304.       228,  229,  216,  228,  229,  216,  228,  229,  216,  228,
  305.       229,  216,  228,  229,  189,  228,  229,  214,  228,  229,
  306.       192,  228,  229,  205,  228,  229,   15,  229,   15,  229,
  307.        14,   15,  229,   15,  229,   11,  229,   12,  229,   21,
  308.       229,   20,  229,   21,  229,   21,  229,   21,  229,   27,
  309.        28,  229,   27,   28,  229,   25,  229,   28,  229,   28,
  310.       229,   28,  229,   19,  229,   18,   19,  229,   19,  229,
  311.        16,  229,   17,  229,  229,   24,  229,  229,   32,   33,
  312.  
  313.       229,   32,   33,  229,   34,  229,   33,  229,   40,  229,
  314.        42,  229,   40,  229,   40,  229,   40,  229,  229,  229,
  315.       229,   39,  229,   39,  229,   39,  229,   69,  229,   71,
  316.       229,   69,  229,   69,  229,   69,  229,   69,  229,  229,
  317.       229,  229,   74,  229,  229,  229,   45,  229,  229,   43,
  318.       229,  229,   48,  229,   47,  229,  229,   46,  229,   48,
  319.       229,   48,  229,   65,  229,   67,  229,   65,  229,   65,
  320.       229,   65,  229,   65,  229,   65,  229,   59,   65,  229,
  321.        59,   65,  229,   56,   65,  229,   65,  229,   53,  229,
  322.        55,  229,   52,  229,  229,   50,  229,  229,   83,  229,
  323.  
  324.        84,  229,   87,  229,   86,  229,   88,  229,   91,  229,
  325.        90,  229,   92,  229,  227,  186,  225,   35,  172,  181,
  326.       173,  170,  178,  168,  179,  169,  180,  223,    1,  171,
  327.       224,  218,  219,  219,  219,  177,  183,  185,  184,  176,
  328.       216,  174,  216,  216,  216,  216,  216,  216,  216,  216,
  329.       139,  216,  216,  216,  216,  216,  216,  216,  147,  216,
  330.       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
  331.       216,  175,  182,   14,   11,   13,   12,   20,   23,   27,
  332.        27,16410,   25,   31,   18,   16,   17,   24,   32,   32,
  333.        34,   42,    3,   41,    2,   36,   39,   39,   39,   71,
  334.  
  335.         5,   70,    9,   74,   73,   10,   45,    4,   43,   44,
  336.        47,    6,   49,   67,   64,   63,   61,    8,   62,   58,
  337.        59,   59,   59,   56,   66,   53,    7,   50,   54,   83,
  338.        87,   91,  220,  198,  193,  165,  223,  223,  224,  224,
  339.       218,  219,  222,  217,  187,  167,  166,  226,  216,  216,
  340.       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
  341.       216,  216,   81,  216,  216,  216,  216,  216,  216,  216,
  342.       216,  216,  216,  216,  216,  145,  216,  216,  216,  148,
  343.       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
  344.       216,  216,  216,  216,  216,  216,   22, 8218,   29,   30,
  345.  
  346.        39,   39,   68,   72,   64,   63,   61,   61,   62,   62,
  347.        58,   59,   60,   57,  223,  223,  224,  224,  222,  217,
  348.       221,   94,  216,   95,  216,   96,  216,   97,  216,   98,
  349.       216,   99,  216,  100,  216,  101,  216,  216,  216,  216,
  350.       216,  216,  216,  106,  216,  107,  216,  108,  216,  109,
  351.       216,  110,  216,  111,  216,  112,  216,  113,  216,  216,
  352.       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
  353.       216,  216,  216,  132,  216,  216,  134,  216,  135,  216,
  354.       216,  216,  216,  216,  141,  216,  142,  216,  216,  216,
  355.       146,  216,  216,  150,  216,  216,  216,  216,  216,  216,
  356.  
  357.       216,  216,  216,  216,  216,  216,  162,  216,  216,  216,
  358.       191,  190,   39,   39,   61,   61,   62,   62,   60,   57,
  359.        51,  223,  224,  216,  216,  104,  216,  216,  216,  216,
  360.       216,  114,  216,  115,  216,  116,  216,  117,  216,  118,
  361.       216,  119,  216,  120,  216,  121,  216,  122,  216,  216,
  362.       216,  216,  216,  216,  127,  216,  216,  216,  216,  216,
  363.       216,  216,  216,  216,  133,  216,  136,  216,  216,  216,
  364.       216,  216,  144,  216,  216,  216,  216,  153,  216,  216,
  365.       216,  216,  216,  216,  216,  160,  216,  216,  216,  164,
  366.       216,   39,   39,   61,   62,  216,  216,  216,  216,  105,
  367.  
  368.       216,  216,  216,  216,  216,  216,  125,  216,  216,  216,
  369.       216,  216,  216,  216,  216,  216,  216,  216,  216,  140,
  370.       216,  143,  216,  149,  216,  216,  152,  216,  154,  216,
  371.       155,  216,  156,  216,  157,  216,  158,  216,  216,  216,
  372.       216,   39,   39,  216,  216,  216,   79,  216,  216,  216,
  373.       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
  374.       216,  216,  138,  216,  216,  159,  216,  216,  216,   37,
  375.        39,  102,  216,  216,  216,  216,  216,  216,  123,  216,
  376.       216,  216,  126,  216,  216,  129,  216,   76,  216,  216,
  377.       216,  216,  216,  216,  137,  216,  151,  216,  161,  216,
  378.  
  379.       163,  216,   38,  103,  216,  216,  216,   79,  216,  216,
  380.       216,  216,   82,  216,  128,  216,  216,  216,  131,  216,
  381.       216,  216,  216,  216,  216,  216,   80,  216,  216,   76,
  382.       216,  130,  216,   89,  216,   77,  216,   78,  216,   75,
  383.       216,  216,  216,  124,  216,  216,  216,  216,  216,   77,
  384.       216,   78,  216,   85,  216,   93,  216
  385.     } ;
  386.  
  387. static yyconst short int yy_accept[712] =
  388.     {   0,
  389.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  390.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  391.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  392.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  393.         1,    2,    4,    6,    8,   11,   13,   16,   19,   22,
  394.        24,   27,   30,   33,   36,   39,   42,   45,   48,   51,
  395.        54,   57,   60,   63,   66,   69,   72,   75,   78,   81,
  396.        84,   87,   90,   93,   96,   99,  102,  105,  108,  111,
  397.       114,  117,  120,  123,  126,  129,  132,  135,  138,  141,
  398.       144,  147,  149,  151,  154,  156,  158,  160,  162,  164,
  399.  
  400.       166,  168,  170,  173,  176,  178,  180,  182,  184,  186,
  401.       189,  191,  193,  195,  196,  198,  199,  202,  205,  207,
  402.       209,  211,  213,  215,  217,  219,  220,  221,  222,  224,
  403.       226,  228,  230,  232,  234,  236,  238,  240,  241,  242,
  404.       243,  245,  246,  247,  249,  250,  252,  253,  255,  257,
  405.       258,  260,  262,  264,  266,  268,  270,  272,  274,  276,
  406.       278,  281,  284,  287,  289,  291,  293,  295,  296,  298,
  407.       299,  301,  303,  305,  307,  309,  311,  313,  315,  316,
  408.       316,  317,  317,  318,  318,  319,  320,  321,  322,  322,
  409.       322,  322,  322,  323,  324,  325,  325,  325,  326,  327,
  410.  
  411.       328,  328,  329,  330,  331,  332,  334,  334,  335,  335,
  412.       336,  336,  336,  337,  338,  339,  340,  341,  342,  342,
  413.       342,  343,  344,  345,  346,  347,  348,  349,  350,  351,
  414.       353,  354,  355,  356,  357,  358,  359,  361,  362,  363,
  415.       364,  365,  366,  367,  368,  369,  370,  371,  372,  373,
  416.       374,  374,  374,  374,  374,  375,  375,  376,  377,  378,
  417.       379,  379,  379,  379,  380,  381,  382,  382,  382,  382,
  418.       383,  384,  384,  384,  385,  385,  386,  386,  387,  388,
  419.       388,  389,  389,  390,  391,  392,  392,  393,  393,  394,
  420.       395,  395,  396,  397,  397,  398,  399,  400,  401,  401,
  421.  
  422.       401,  402,  403,  403,  403,  404,  404,  405,  405,  406,
  423.       407,  408,  409,  410,  411,  411,  412,  412,  413,  414,
  424.       414,  415,  415,  415,  416,  416,  416,  417,  417,  418,
  425.       419,  420,  422,  422,  423,  423,  424,  425,  426,  426,
  426.       427,  428,  428,  429,  430,  430,  431,  432,  433,  434,
  427.       435,  436,  437,  437,  438,  440,  440,  441,  443,  443,
  428.       444,  445,  446,  447,  448,  448,  449,  449,  449,  449,
  429.       450,  451,  452,  453,  454,  455,  456,  457,  458,  459,
  430.       460,  461,  462,  463,  465,  466,  467,  468,  469,  470,
  431.       471,  472,  473,  474,  475,  476,  478,  479,  480,  482,
  432.  
  433.       483,  484,  485,  486,  487,  488,  489,  490,  491,  492,
  434.       493,  494,  495,  496,  497,  497,  497,  497,  497,  498,
  435.       499,  499,  500,  501,  502,  503,  504,  505,  505,  506,
  436.       506,  506,  507,  507,  507,  508,  510,  510,  511,  513,
  437.       513,  514,  515,  515,  515,  516,  516,  518,  518,  519,
  438.       520,  521,  522,  524,  526,  528,  530,  532,  534,  536,
  439.       538,  539,  540,  541,  542,  543,  544,  546,  548,  550,
  440.       552,  554,  556,  558,  560,  561,  562,  563,  564,  565,
  441.       566,  567,  568,  569,  570,  571,  572,  573,  574,  576,
  442.       577,  579,  581,  582,  583,  584,  585,  587,  589,  590,
  443.  
  444.       591,  593,  594,  596,  597,  598,  599,  600,  601,  602,
  445.       603,  604,  605,  606,  607,  609,  610,  611,  612,  613,
  446.       614,  615,  615,  616,  616,  618,  618,  619,  620,  621,
  447.       622,  622,  624,  625,  626,  628,  629,  630,  631,  632,
  448.       634,  636,  638,  640,  642,  644,  646,  648,  650,  651,
  449.       652,  653,  654,  655,  657,  658,  659,  660,  661,  662,
  450.       663,  664,  665,  667,  669,  670,  671,  672,  673,  675,
  451.       676,  677,  678,  680,  681,  682,  683,  684,  685,  686,
  452.       688,  689,  690,  692,  693,  694,  694,  696,  697,  698,
  453.       699,  700,  702,  703,  704,  705,  706,  707,  709,  710,
  454.  
  455.       711,  712,  713,  714,  715,  716,  717,  718,  719,  720,
  456.       722,  724,  726,  727,  729,  731,  733,  735,  737,  739,
  457.       740,  741,  742,  743,  744,  745,  746,  747,  749,  750,
  458.       751,  752,  753,  754,  755,  756,  757,  758,  759,  760,
  459.       761,  762,  763,  765,  766,  768,  769,  770,  771,  772,
  460.       774,  775,  776,  777,  778,  779,  781,  782,  783,  785,
  461.       786,  788,  790,  791,  792,  793,  794,  795,  797,  799,
  462.       801,  803,  804,  806,  807,  808,  810,  811,  812,  813,
  463.       815,  817,  818,  819,  821,  822,  823,  824,  825,  826,
  464.       827,  829,  830,  832,  834,  836,  838,  840,  842,  843,
  465.  
  466.       844,  846,  847,  848,  849,  850,  852,  854,  856,  858,
  467.       858
  468.     } ;
  469.  
  470. static yyconst int yy_ec[256] =
  471.     {   0,
  472.         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  473.         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
  474.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  475.         1,    2,    5,    6,    7,    1,    8,    9,   10,   11,
  476.        12,   13,   14,   15,   16,   17,   18,   19,   20,   21,
  477.        22,   23,   24,   25,   26,   27,   27,   28,   29,   30,
  478.        31,   32,   33,    1,   34,   34,   34,   34,   35,   36,
  479.        37,   37,   37,   37,   37,   38,   37,   37,   37,   37,
  480.        37,   37,   37,   37,   39,   37,   37,   40,   37,   37,
  481.        41,   42,   43,   44,   45,    1,   46,   47,   48,   49,
  482.  
  483.        50,   51,   52,   53,   54,   55,   56,   57,   58,   59,
  484.        60,   61,   55,   62,   63,   64,   65,   66,   67,   68,
  485.        69,   70,   71,   72,   73,   74,    1,    1,    1,    1,
  486.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  487.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  488.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  489.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  490.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  491.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  492.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  493.  
  494.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  495.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  496.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  497.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  498.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  499.         1,    1,    1,    1,    1
  500.     } ;
  501.  
  502. static yyconst int yy_meta[75] =
  503.     {   0,
  504.         1,    2,    3,    4,    1,    5,    1,    1,    1,    6,
  505.         7,    7,    8,    8,    1,    1,    9,    1,   10,   10,
  506.        10,   10,   10,   10,   10,   10,   10,    1,   11,    1,
  507.         1,   12,    1,   13,   14,   15,   16,   17,   18,   16,
  508.         1,    1,    1,    1,   16,   19,   19,   19,   19,   20,
  509.        21,   22,   22,   22,   22,   22,   23,   22,   22,   22,
  510.        22,   22,   22,   22,   24,   22,   22,   22,   22,   22,
  511.         1,    1,    1,    1
  512.     } ;
  513.  
  514. static yyconst short int yy_base[779] =
  515.     {   0,
  516.         0,    0,   73,   76,   78,   80,   93,   96,   98,  100,
  517.       112,  114,  117,  120,  122,  124,  166,    0,  238,  242,
  518.       279,    0,  127,  132,  348,    0,  246,  248,  418,    0,
  519.       492,    0, 2630, 2629,  132,  135,  131,  133,  141,  143,
  520.      2657, 2660, 2660,  153, 2625,   99, 2652, 2621,  234, 2609,
  521.      2660,  130, 2619,  239,  245,  242,  290,  258,  550,  602,
  522.      2660,  259,  128, 2617,  129, 2660,    0,  269, 2660, 2660,
  523.      2615, 2600,  100, 2582,  209,  231,  294,   28, 2583,  227,
  524.      2580, 2588,  229, 2568, 2577, 2574, 2579, 2660,  223,  279,
  525.      2660, 2660,  350, 2660,  315,  354,  356, 2660, 2660,  317,
  526.  
  527.       347,  309,    0,  378,  566,  370,  274,  362, 2660, 2660,
  528.       374, 2618, 2616,  578, 2660,  580,    0,  589, 2660,  583,
  529.      2660, 2660,  592,  584,  595, 2660,  588,  649,    0, 2579,
  530.      2567, 2660, 2660,  600,    0,  592,  605,    0,  598,  610,
  531.      2660,  627,  621, 2622,  629,    0,  629, 2660, 2660,  632,
  532.      2660,  630,  641, 2660, 2660,  646,  611,  347,  658,  642,
  533.       669,  721,    0,  653, 2621, 2660, 2660,  645, 2605,  658,
  534.         0, 2660,    0, 2660, 2660,    0, 2660, 2660, 2660,  661,
  535.      2660,  660, 2660, 2617, 2616, 2660, 2660, 2660,  687,  695,
  536.       353,  688, 2660, 2660, 2660,  685,  697, 2660, 2660, 2660,
  537.  
  538.      2600,  682, 2660, 2660,  715,  723,  773,  692,    0,    0,
  539.       698,  709, 2585, 2660, 2660, 2660, 2584,    0,  693, 2570,
  540.      2660,  755, 2552, 2545, 2558, 2543, 2558, 2544, 2551, 2536,
  541.      2535, 2531, 2531, 2534, 2530, 2526,    0,  657, 2530,  659,
  542.      2528,  684,  666, 2533, 2523,  701,  713, 2528, 2660, 2660,
  543.       750,  756,  711,  809, 2660,  772,  811, 2660,  771, 2660,
  544.       778,  817,  794, 2660,    0,  824, 2568,  819,  826,  839,
  545.       832,  844,  797, 2660, 2562, 2660,  846, 2565, 2562,  848,
  546.      2660,  852,    0,  855, 2660,  858, 2660,  860, 2660, 2660,
  547.       862, 2660, 2573,  851,    0, 2523, 2525, 2660,  864,  614,
  548.  
  549.      2660, 2660,  876, 2564, 2660,  879, 2660,  881,  867, 2660,
  550.      2566, 2660,    0, 2660,  892, 2660,  896, 2660, 2660,  898,
  551.      2660,  902,  891, 2660,  903,  893, 2660,  904,  875, 2660,
  552.       880,  930,  977,  883,    0,  988,    0, 2660,  916, 2565,
  553.      2660, 2549, 2547, 2660,  920,    0,    0,    0, 2660, 2660,
  554.      2660, 2660, 1035, 2660,  924, 1049, 2660,  925, 1009,  935,
  555.       982, 2660, 2660, 2660,  928, 2660, 2559,  902, 2558, 1058,
  556.       730, 1066, 2492,  881, 2500, 2499, 2494, 2446, 2436,  912,
  557.      2413, 2422, 2418,    0, 2416, 2429, 2424, 2410,  865, 2424,
  558.      2422, 2418, 2409, 2414, 2415,    0, 2400, 2404,    0, 2403,
  559.  
  560.      2400, 2388, 2372, 2351, 2340, 2303, 2301, 2287, 2300, 2285,
  561.      2290, 2294, 2293, 2281,  959,  923,  965,  925, 2660, 2660,
  562.       975, 2660, 2660, 2281, 2275, 2660, 2660,  982,  983, 1060,
  563.       974,  975, 1089, 1113, 2660, 1059, 1127, 2660, 1106, 1153,
  564.      1060, 1126, 2314, 1173, 1067, 1187, 2660, 1196, 1130, 2660,
  565.      1186, 2660,    0,    0,    0,    0,    0,    0,    0,    0,
  566.      2265, 2272, 2267, 2260, 2267, 2259,    0,    0,    0,    0,
  567.         0,    0,    0,    0, 2253, 2253, 1136,  980, 2265, 2265,
  568.      2247,  967, 2221, 2212,  994, 2202, 2176, 2159,    0, 2159,
  569.         0,    0, 2136, 2145, 2131, 2138,    0,    0, 2132, 2129,
  570.  
  571.         0, 2133,    0, 2051, 2051, 2006, 2016, 2005, 1990, 1963,
  572.      1962, 1960, 1946, 1952,    0, 1937, 1948, 2660, 2660, 1938,
  573.      1930, 1207, 1131, 1233, 2660, 1242, 1234, 2660, 1235, 2660,
  574.      1256, 1248, 1927, 1939, 1945, 1925, 1923, 1920, 1931,    0,
  575.         0,    0,    0,    0,    0,    0,    0,    0, 1924, 1927,
  576.      1926, 1895, 1885,    0, 1867, 1840, 1830, 1826, 1827, 1801,
  577.      1796, 1781,    0,    0, 1767, 1754, 1760, 1748,    0, 1756,
  578.      1741, 1745,    0, 1754, 1729, 1715, 1692, 1672, 1674,    0,
  579.      1622, 1623,    0, 1626, 1612, 1287, 1265, 1614, 1581, 1276,
  580.      1266,    0, 1255, 1259, 1258, 1253, 1247,    0, 1256, 1236,
  581.  
  582.      1248, 1246, 1239, 1232, 1233, 1238, 1225, 1223, 1223,    0,
  583.         0,    0, 1221,    0,    0,    0,    0,    0,    0, 1199,
  584.      1198, 1189, 1243, 1194, 1185,  719, 1194, 1195, 1176, 1188,
  585.      1175, 1191, 1178, 1153, 1141, 1153, 1140, 1137, 1135, 1126,
  586.      1130, 1120,    0, 1080,    0, 1081, 1078, 1124, 1123,    0,
  587.      1074, 1069, 1054, 1069, 1059, 1067, 1043, 1062,    0, 1041,
  588.         0, 1056, 1032, 1004, 1007, 1000,  991,    0,    0,    0,
  589.         0, 1044,    0,  997,  977,    0,  962,  961,  933,    0,
  590.         0,  927,  875,    0,  872,  820,  794,  791,  752,  718,
  591.         0,  590,    0,    0,    0,  533,  336,    0,  334,  314,
  592.  
  593.         0,  279,  222,  117,   63,    0,    0,    0,    0, 2660,
  594.      1322, 1346, 1370, 1394, 1418, 1442, 1466, 1490, 1514, 1538,
  595.      1562, 1586, 1610, 1634, 1649, 1673, 1697, 1721, 1727, 1751,
  596.      1775, 1798, 1799, 1823, 1847, 1862, 1878, 1902, 1926, 1950,
  597.      1965, 1979, 1993, 2014, 2038, 2062, 2086, 2110, 2116, 2140,
  598.      2164, 2187, 2188, 2212, 2236, 2260, 2284, 2299, 2313, 2327,
  599.      2339, 2355, 2379, 2403, 2427, 2442, 2456, 2470, 2494, 2518,
  600.      2533, 2548, 2562, 2576, 2590, 2604, 2618, 2632
  601.     } ;
  602.  
  603. static yyconst short int yy_def[779] =
  604.     {   0,
  605.       710,    1,  711,  711,  712,  712,  713,  713,  714,  714,
  606.       715,  715,  716,  716,  717,  717,  710,   17,  718,  718,
  607.        17,   21,   21,   21,   21,   25,  719,  719,  710,   29,
  608.       710,   31,  720,  720,  721,  721,   21,   21,  722,  722,
  609.       710,  710,  710,  710,  710,  723,  710,  710,  710,  724,
  610.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  611.       710,  710,  710,  710,  710,  710,  725,  725,  710,  710,
  612.       710,  725,  725,  725,  725,  725,  725,  725,  725,  725,
  613.       725,  725,  725,  725,  725,  725,  725,  710,  710,  710,
  614.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  615.  
  616.       710,  710,  726,  726,  710,  710,  710,  710,  710,  710,
  617.       710,  710,  710,  727,  710,  727,  728,  728,  710,  710,
  618.       710,  710,  710,  710,  710,  710,  710,  710,  729,  729,
  619.       729,  710,  710,  710,  730,  710,  710,  731,  710,  732,
  620.       710,  710,  710,  710,  710,  733,  710,  710,  710,  710,
  621.       710,  710,  710,  710,  710,  710,  734,  735,  710,  710,
  622.       710,  710,  736,  710,  710,  710,  710,  710,  737,  710,
  623.       738,  710,  739,  710,  710,  740,  710,  710,  710,  710,
  624.       710,  723,  710,  723,  710,  710,  710,  710,  724,  724,
  625.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  626.  
  627.       710,  741,  710,  710,  742,   59,  710,  710,  743,   60,
  628.       710,  710,  710,  710,  710,  710,  710,  725,  744,  745,
  629.       710,  725,  725,  725,  725,  725,  725,  725,  725,  725,
  630.       725,  725,  725,  725,  725,  725,  725,  725,  725,  725,
  631.       725,  725,  725,  725,  725,  725,  725,  725,  710,  710,
  632.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  633.       710,  710,  710,  710,  746,  746,  710,  710,  710,  710,
  634.       710,  710,  710,  710,  710,  710,  710,  710,  710,  747,
  635.       710,  747,  748,  748,  710,  710,  710,  710,  710,  710,
  636.       710,  710,  710,  710,  749,  749,  749,  710,  710,  750,
  637.  
  638.       710,  710,  710,  751,  710,  752,  710,  710,  710,  710,
  639.       710,  710,  753,  710,  710,  710,  710,  710,  710,  710,
  640.       710,  710,  754,  710,  755,  756,  710,  757,  758,  710,
  641.       759,  710,  710,  710,  760,  710,  761,  710,  710,  710,
  642.       710,  710,  762,  710,  710,  763,  764,  765,  710,  710,
  643.       710,  710,  710,  710,  766,  710,  710,  710,  710,  767,
  644.       768,  710,  710,  710,  769,  710,  769,  770,  770,  771,
  645.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  646.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  647.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  648.  
  649.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  650.       771,  771,  771,  771,  710,  710,  710,  710,  710,  710,
  651.       710,  710,  710,  749,  749,  710,  710,  754,  754,  755,
  652.       756,  756,  757,  710,  710,  759,  710,  710,  710,  710,
  653.       772,  760,  710,  710,  773,  710,  710,  710,  774,  710,
  654.       710,  710,  771,  771,  771,  771,  771,  771,  771,  771,
  655.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  656.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  657.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  658.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  659.  
  660.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  661.       771,  771,  771,  771,  771,  771,  771,  710,  710,  749,
  662.       749,  710,  775,  710,  710,  710,  776,  710,  710,  710,
  663.       710,  777,  771,  771,  771,  771,  771,  771,  771,  771,
  664.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  665.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  666.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  667.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  668.       771,  771,  771,  749,  749,  710,  778,  771,  771,  771,
  669.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  670.  
  671.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  672.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  673.       771,  771,  749,  749,  771,  771,  771,  771,  771,  771,
  674.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  675.       771,  771,  771,  771,  771,  771,  771,  710,  749,  771,
  676.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  677.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  678.       771,  710,  771,  771,  771,  771,  771,  771,  771,  771,
  679.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  680.       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
  681.  
  682.       771,  771,  771,  771,  771,  771,  771,  771,  771,    0,
  683.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  684.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  685.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  686.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  687.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  688.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  689.       710,  710,  710,  710,  710,  710,  710,  710
  690.     } ;
  691.  
  692. static yyconst short int yy_nxt[2735] =
  693.     {   0,
  694.        42,   42,   43,   44,   45,   46,   47,   48,   49,   50,
  695.        51,   52,   53,   54,   55,   56,   57,   58,   59,   60,
  696.        60,   60,   60,   60,   60,   60,   60,   61,   62,   63,
  697.        64,   65,   66,   67,   67,   67,   67,   68,   67,   67,
  698.        69,   42,   70,   71,   72,   73,   74,   75,   76,   77,
  699.        78,   79,   67,   80,   67,   67,   81,   67,   67,   67,
  700.        67,   82,   83,   84,   85,   86,   87,   67,   67,   67,
  701.        88,   89,   90,   91,   93,   94,   95,   93,   94,   95,
  702.        99,  100,   99,  100,  234,   96,   97,  235,   96,   97,
  703.       101,  102,  101,  102,  104,  105,  106,  104,  105,  106,
  704.  
  705.       110,  111,  110,  111,  183,  107,  108,  709,  107,  108,
  706.       112,  113,  112,  113,  115,  116,  115,  116,  118,  119,
  707.       120,  118,  119,  120,  122,  123,  122,  123,  140,  141,
  708.       142,  191,  126,  140,  141,  142,  126,  126,  126,  124,
  709.       184,  124,  174,  175,  143,  174,  175,  192,  126,  143,
  710.       126,  177,  178,  177,  178,  179,  180,  213,  214,  216,
  711.       217,  708,  223,  125,  224,  125,  126,  126,  126,  126,
  712.       126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
  713.       126,  126,  126,  127,  128,  128,  128,  128,  128,  128,
  714.       128,  128,  128,  126,  126,  126,  126,  126,  126,  126,
  715.  
  716.       126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
  717.       126,  129,  129,  129,  130,  129,  129,  129,  129,  131,
  718.       129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
  719.       129,  129,  129,  129,  129,  129,  126,  126,  126,  126,
  720.       133,  134,  187,  135,  133,  134,  196,  135,  149,  150,
  721.       149,  150,  194,  249,  226,  136,  151,  198,  151,  136,
  722.       211,  227,  197,  152,  188,  152,  707,  135,  228,  195,
  723.       203,  135,  199,  200,  219,  203,  212,  237,  220,  137,
  724.       229,  241,  242,  137,  138,  238,  273,  153,  204,  153,
  725.       230,  274,  243,  251,  250,  244,  139,  126,  126,  126,
  726.  
  727.       126,  126,  126,  126,  126,  126,  201,  252,  202,  202,
  728.       202,  202,  202,  202,  202,  202,  202,  255,  256,  260,
  729.       261,  262,  263,  706,  126,  126,  126,  126,  126,  126,
  730.       126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
  731.       126,  126,  126,  126,  126,  126,  126,  126,  126,  144,
  732.       231,  253,  232,  126,  191,  253,  327,  253,  705,  262,
  733.       263,  233,  254,  253,  264,  145,  257,  253,  254,  259,
  734.       192,  258,  271,  272,  275,  268,  276,  277,  704,  266,
  735.       703,  146,  146,  146,  146,  146,  146,  146,  328,  147,
  736.       267,  268,  146,  146,  146,  146,  146,  146,  146,  146,
  737.  
  738.       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
  739.       146,  146,  146,  146,  146,  146,  146,  146,  154,  154,
  740.       155,  156,  154,  157,  154,  154,  154,  158,  154,  154,
  741.       154,  154,  154,  154,  159,  160,  161,  162,  162,  162,
  742.       162,  162,  162,  162,  162,  154,  154,  154,  154,  154,
  743.       154,  163,  163,  163,  163,  163,  163,  163,  154,  164,
  744.       154,  154,  163,  163,  163,  163,  163,  163,  163,  163,
  745.       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
  746.       163,  163,  163,  163,  163,  163,  163,  163,  154,  154,
  747.       154,  154,  126,  165,  126,  126,  126,  126,  126,  126,
  748.  
  749.       126,  126,  126,  166,  126,  126,  167,  126,  126,  168,
  750.       126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
  751.       126,  126,  126,  126,  126,  169,  169,  169,  169,  169,
  752.       169,  169,  126,  170,  126,  126,  169,  169,  169,  169,
  753.       169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
  754.       169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
  755.       169,  169,  126,  126,  126,  126,  205,  269,  206,  206,
  756.       206,  206,  206,  206,  206,  206,  206,  702,  270,  270,
  757.       281,  282,  281,  282,  207,  285,  286,  208,  208,  209,
  758.       284,  285,  286,  270,  287,  288,  289,  290,  291,  207,
  759.  
  760.       292,  289,  298,  299,  301,  292,  208,  302,  303,  301,
  761.       305,  306,  307,  308,  208,  305,  324,  209,  205,  426,
  762.       210,  210,  210,  210,  210,  210,  210,  210,  210,  307,
  763.       308,  314,  315,  310,  316,  317,  207,  270,  310,  208,
  764.       208,  312,  318,  319,  320,  426,  312,  318,  321,  322,
  765.       293,  207,  325,  701,  330,  338,  339,  341,  208,  330,
  766.       344,  345,  341,  179,  180,  183,  208,  294,  294,  294,
  767.       294,  294,  294,  294,  294,  294,  329,  329,  329,  329,
  768.       329,  329,  329,  329,  329,  331,  196,  332,  332,  332,
  769.       332,  332,  332,  332,  332,  332,  349,  710,  366,  211,
  770.  
  771.       350,  184,  197,  333,  189,  350,  334,  334,  335,  351,
  772.       401,  406,  253,  398,  351,  212,  353,  354,  333,  354,
  773.       399,  362,  402,  254,  253,  334,  362,  407,  190,  208,
  774.       208,  353,  354,  334,  367,  404,  335,  331,  354,  336,
  775.       336,  336,  336,  336,  336,  336,  336,  336,  208,  356,
  776.       357,  415,  357,  405,  410,  333,  208,  417,  334,  334,
  777.       358,  358,  710,  411,  356,  357,  412,  416,  651,  413,
  778.       333,  357,  253,  418,  255,  256,  700,  334,  652,  358,
  779.       260,  261,  465,  254,  259,  334,  359,  358,  359,  466,
  780.       710,  360,  360,  360,  360,  360,  360,  360,  360,  360,
  781.  
  782.       370,  699,  371,  372,  373,  374,  262,  263,  375,  273,
  783.       253,  376,  253,  377,  422,  378,  379,  380,  381,  382,
  784.       383,  254,  253,  257,  253,  266,  258,  269,  258,  262,
  785.       263,  275,  268,  269,  419,  698,  267,  268,  270,  270,
  786.       420,  420,  421,  697,  270,  270,  271,  272,  276,  277,
  787.       281,  282,  293,  270,  281,  282,  284,  285,  286,  270,
  788.       285,  286,  287,  288,  290,  291,  298,  299,  696,  294,
  789.       294,  294,  294,  294,  294,  294,  294,  294,  302,  303,
  790.       306,  307,  308,  307,  308,  309,  309,  309,  309,  309,
  791.       309,  309,  309,  309,  314,  315,  324,  270,  316,  317,
  792.  
  793.       319,  320,  327,  270,  321,  322,  323,  326,  429,  434,
  794.       435,  452,  435,  432,  437,  438,  695,  438,  338,  339,
  795.       334,  334,  344,  345,  434,  435,  476,  493,  494,  437,
  796.       438,  435,  325,  366,  328,  518,  438,  519,  694,  334,
  797.       518,  477,  519,  369,  430,  433,  331,  334,  332,  332,
  798.       332,  332,  332,  332,  332,  332,  332,  483,  446,  447,
  799.       415,  447,  358,  358,  333,  484,  417,  439,  439,  367,
  800.       450,  693,  450,  446,  447,  485,  416,  420,  421,  333,
  801.       447,  358,  418,  327,  327,  450,  439,  324,  324,  358,
  802.       440,  450,  440,  692,  439,  441,  441,  441,  441,  441,
  803.  
  804.       441,  441,  441,  441,  331,  691,  336,  336,  336,  336,
  805.       336,  336,  336,  336,  336,  328,  328,  554,  555,  451,
  806.       451,  690,  333,  325,  325,  334,  334,  360,  360,  360,
  807.       360,  360,  360,  360,  360,  360,  549,  333,  451,  558,
  808.       689,  688,  559,  550,  334,  672,  451,  687,  444,  686,
  809.       444,  685,  334,  445,  445,  445,  445,  445,  445,  445,
  810.       445,  445,  448,  323,  448,  429,  684,  449,  449,  449,
  811.       449,  449,  449,  449,  449,  449,  453,  454,  455,  456,
  812.       457,  458,  459,  460,  467,  468,  469,  470,  471,  472,
  813.       473,  474,  326,  524,  525,  528,  525,  528,  432,  683,
  814.  
  815.       682,  430,  354,  681,  354,  461,  680,  679,  524,  525,
  816.       528,  678,  677,  676,  462,  525,  528,  354,  675,  674,
  817.       463,  464,  673,  354,  672,  648,  522,  671,  522,  670,
  818.       433,  523,  523,  523,  523,  523,  523,  523,  523,  523,
  819.       526,  669,  526,  439,  439,  527,  527,  527,  527,  527,
  820.       527,  527,  527,  527,  541,  542,  543,  544,  545,  546,
  821.       547,  548,  439,  529,  529,  357,  435,  357,  435,  668,
  822.       439,  441,  441,  441,  441,  441,  441,  441,  441,  441,
  823.       357,  435,  529,  667,  666,  665,  357,  435,  664,  663,
  824.       529,  445,  445,  445,  445,  445,  445,  445,  445,  445,
  825.  
  826.       531,  662,  531,  661,  660,  532,  532,  532,  532,  532,
  827.       532,  532,  532,  532,  449,  449,  449,  449,  449,  449,
  828.       449,  449,  449,  451,  451,  523,  523,  523,  523,  523,
  829.       523,  523,  523,  523,  659,  658,  657,  656,  655,  654,
  830.       653,  650,  451,  649,  648,  647,  586,  646,  586,  645,
  831.       451,  587,  587,  587,  587,  587,  587,  587,  587,  587,
  832.       527,  527,  527,  527,  527,  527,  527,  527,  527,  438,
  833.       644,  438,  529,  529,  532,  532,  532,  532,  532,  532,
  834.       532,  532,  532,  447,  438,  447,  643,  642,  641,  640,
  835.       438,  529,  639,  638,  637,  636,  635,  634,  447,  529,
  836.  
  837.       525,  633,  525,  632,  447,  587,  587,  587,  587,  587,
  838.       587,  587,  587,  587,  631,  525,  630,  629,  628,  627,
  839.       384,  525,   92,   92,   92,   92,   92,   92,   92,   92,
  840.        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
  841.        92,   92,   92,   92,   92,   92,   98,   98,   98,   98,
  842.        98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
  843.        98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
  844.       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
  845.       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
  846.       103,  103,  103,  103,  109,  109,  109,  109,  109,  109,
  847.  
  848.       109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
  849.       109,  109,  109,  109,  109,  109,  109,  109,  114,  114,
  850.       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
  851.       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
  852.       114,  114,  117,  117,  117,  117,  117,  117,  117,  117,
  853.       117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
  854.       117,  117,  117,  117,  117,  117,  121,  121,  121,  121,
  855.       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
  856.       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
  857.       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
  858.  
  859.       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
  860.       132,  132,  132,  132,  148,  148,  148,  148,  148,  148,
  861.       148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
  862.       148,  148,  148,  148,  148,  148,  148,  148,  171,  171,
  863.       171,  171,  171,  171,  171,  171,  171,  171,  171,  171,
  864.       171,  171,  171,  171,  171,  171,  171,  171,  171,  171,
  865.       171,  171,  173,  173,  173,  173,  173,  173,  173,  173,
  866.       173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
  867.       173,  173,  173,  173,  173,  173,  176,  176,  176,  176,
  868.       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
  869.  
  870.       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
  871.       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
  872.       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
  873.       182,  182,  182,  182,  189,  189,  189,  189,  189,  626,
  874.       189,  189,  189,  189,  189,  189,  189,  189,  189,  189,
  875.       189,  189,  189,  189,  189,  189,  189,  189,  218,  625,
  876.       624,  218,  218,  218,  218,  218,  218,  218,  218,  218,
  877.       218,  218,  218,  265,  265,  623,  622,  265,  265,  265,
  878.       621,  265,  265,  265,  265,  265,  265,  265,  265,  265,
  879.       265,  265,  265,  265,  265,  265,  265,  280,  280,  280,
  880.  
  881.       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
  882.       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
  883.       280,  283,  283,  620,  619,  283,  283,  283,  283,  283,
  884.       283,  283,  283,  283,  283,  283,  283,  283,  283,  283,
  885.       283,  283,  283,  283,  283,  295,  295,  295,  295,  295,
  886.       295,  300,  300,  300,  300,  618,  300,  300,  300,  300,
  887.       300,  300,  617,  300,  300,  300,  300,  300,  300,  300,
  888.       300,  300,  300,  300,  300,  304,  304,  304,  304,  616,
  889.       304,  304,  304,  304,  304,  304,  304,  304,  304,  304,
  890.       304,  304,  304,  304,  304,  304,  304,  304,  304,  309,
  891.  
  892.       309,  309,  615,  614,  613,  612,  611,  309,  313,  610,
  893.       609,  313,  313,  313,  313,  313,  313,  313,  313,  313,
  894.       313,  313,  313,  323,  323,  608,  607,  323,  323,  323,
  895.       323,  323,  323,  323,  323,  323,  323,  323,  323,  323,
  896.       323,  323,  323,  323,  323,  323,  323,  326,  326,  606,
  897.       605,  326,  326,  326,  326,  326,  326,  326,  326,  326,
  898.       326,  326,  326,  326,  326,  326,  326,  326,  326,  326,
  899.       326,  337,  604,  603,  337,  337,  337,  337,  337,  337,
  900.       337,  337,  337,  337,  337,  337,  343,  343,  602,  601,
  901.       343,  343,  343,  343,  343,  343,  343,  343,  343,  343,
  902.  
  903.       343,  343,  346,  346,  346,  346,  346,  346,  346,  346,
  904.       346,  346,  600,  346,  346,  346,  346,  346,  346,  346,
  905.       346,  346,  346,  346,  346,  346,  347,  347,  347,  347,
  906.       347,  347,  599,  347,  347,  347,  347,  347,  347,  347,
  907.       347,  347,  347,  347,  347,  347,  347,  347,  347,  347,
  908.       348,  348,  348,  348,  348,  348,  598,  348,  348,  348,
  909.       348,  348,  348,  348,  348,  348,  348,  348,  348,  348,
  910.       348,  348,  348,  348,  202,  597,  596,  595,  202,  202,
  911.       594,  202,  593,  592,  202,  202,  591,  202,  355,  590,
  912.       589,  588,  355,  355,  585,  355,  584,  583,  355,  355,
  913.  
  914.       582,  355,  361,  581,  580,  361,  361,  361,  579,  578,
  915.       577,  361,  361,  361,  365,  365,  365,  365,  365,  365,
  916.       365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
  917.       365,  365,  365,  365,  365,  365,  365,  365,  368,  368,
  918.       368,  368,  368,  576,  368,  368,  368,  368,  368,  368,
  919.       368,  368,  368,  368,  368,  368,  368,  368,  368,  368,
  920.       368,  368,  265,  265,  575,  574,  265,  265,  265,  573,
  921.       265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
  922.       265,  265,  265,  265,  265,  265,  280,  280,  280,  280,
  923.       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
  924.  
  925.       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
  926.       283,  283,  572,  571,  283,  283,  283,  283,  283,  283,
  927.       283,  283,  283,  283,  283,  283,  283,  283,  283,  283,
  928.       283,  283,  283,  283,  295,  295,  295,  295,  295,  295,
  929.       300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
  930.       300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
  931.       300,  300,  300,  300,  304,  304,  304,  304,  304,  304,
  932.       304,  304,  304,  304,  304,  304,  304,  304,  304,  304,
  933.       304,  304,  304,  304,  304,  304,  304,  304,  309,  309,
  934.       309,  570,  569,  568,  567,  566,  309,  313,  565,  564,
  935.  
  936.       313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
  937.       313,  313,  323,  323,  563,  562,  323,  323,  323,  323,
  938.       323,  323,  323,  323,  323,  323,  323,  323,  323,  323,
  939.       323,  323,  323,  323,  323,  323,  428,  428,  561,  428,
  940.       428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
  941.       428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
  942.       326,  326,  560,  557,  326,  326,  326,  326,  326,  326,
  943.       326,  326,  326,  326,  326,  326,  326,  326,  326,  326,
  944.       326,  326,  326,  326,  431,  431,  556,  431,  431,  431,
  945.       431,  431,  431,  431,  431,  431,  431,  431,  431,  431,
  946.  
  947.       431,  431,  431,  431,  431,  431,  431,  431,  329,  553,
  948.       552,  551,  329,  329,  540,  329,  539,  538,  329,  329,
  949.       537,  329,  436,  536,  535,  534,  436,  436,  533,  436,
  950.       530,  521,  436,  436,  520,  436,  442,  517,  516,  442,
  951.       442,  442,  515,  514,  513,  442,  442,  442,  337,  512,
  952.       511,  337,  337,  337,  337,  337,  337,  337,  337,  337,
  953.       337,  337,  337,  343,  343,  510,  509,  343,  343,  343,
  954.       343,  343,  343,  343,  343,  343,  343,  343,  343,  346,
  955.       346,  346,  346,  346,  346,  346,  346,  346,  346,  508,
  956.       346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  957.  
  958.       346,  346,  346,  347,  347,  347,  347,  347,  347,  507,
  959.       347,  347,  347,  347,  347,  347,  347,  347,  347,  347,
  960.       347,  347,  347,  347,  347,  347,  347,  348,  348,  348,
  961.       348,  348,  348,  506,  348,  348,  348,  348,  348,  348,
  962.       348,  348,  348,  348,  348,  348,  348,  348,  348,  348,
  963.       348,  355,  505,  504,  503,  355,  355,  502,  355,  501,
  964.       500,  355,  355,  499,  355,  360,  498,  497,  496,  495,
  965.       360,  492,  360,  491,  490,  489,  360,  488,  360,  361,
  966.       487,  486,  361,  361,  361,  482,  361,  361,  361,  361,
  967.       361,  481,  361,  361,  365,  365,  365,  365,  365,  365,
  968.  
  969.       365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
  970.       365,  365,  365,  365,  365,  365,  365,  365,  368,  368,
  971.       368,  368,  368,  368,  368,  368,  368,  368,  368,  368,
  972.       368,  368,  368,  368,  368,  368,  368,  368,  368,  368,
  973.       368,  368,  218,  480,  479,  218,  218,  218,  218,  218,
  974.       218,  218,  218,  218,  218,  218,  218,  441,  478,  475,
  975.       710,  710,  441,  342,  441,  443,  340,  311,  441,  427,
  976.       441,  445,  425,  424,  293,  279,  445,  278,  445,  423,
  977.       273,  414,  445,  409,  445,  449,  408,  403,  400,  397,
  978.       449,  396,  449,  395,  394,  393,  449,  392,  449,  523,
  979.  
  980.       391,  390,  389,  388,  523,  387,  523,  386,  385,  384,
  981.       523,  369,  523,  527,  364,  363,  352,  185,  527,  710,
  982.       527,  342,  340,  311,  527,  297,  527,  532,  296,  279,
  983.       278,  248,  532,  247,  532,  246,  245,  240,  532,  239,
  984.       532,  587,  236,  225,  222,  221,  587,  215,  587,  193,
  985.       190,  186,  587,  185,  587,  181,  710,  172,  172,   41,
  986.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  987.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  988.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  989.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  990.  
  991.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  992.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  993.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  994.       710,  710,  710,  710
  995.     } ;
  996.  
  997. static yyconst short int yy_chk[2735] =
  998.     {   0,
  999.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1000.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1001.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1002.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1003.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1004.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1005.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  1006.         1,    1,    1,    1,    3,    3,    3,    4,    4,    4,
  1007.         5,    5,    6,    6,   78,    3,    3,   78,    4,    4,
  1008.         5,    5,    6,    6,    7,    7,    7,    8,    8,    8,
  1009.  
  1010.         9,    9,   10,   10,   46,    7,    7,  705,    8,    8,
  1011.         9,    9,   10,   10,   11,   11,   12,   12,   13,   13,
  1012.        13,   14,   14,   14,   15,   15,   16,   16,   23,   23,
  1013.        23,   52,   23,   24,   24,   24,   37,   24,   38,   15,
  1014.        46,   16,   35,   35,   23,   36,   36,   52,   37,   24,
  1015.        38,   39,   39,   40,   40,   44,   44,   63,   63,   65,
  1016.        65,  704,   73,   15,   73,   16,   17,   17,   17,   17,
  1017.        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  1018.        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  1019.        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  1020.  
  1021.        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  1022.        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  1023.        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  1024.        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  1025.        19,   19,   49,   19,   20,   20,   55,   20,   27,   27,
  1026.        28,   28,   54,   89,   75,   19,   27,   56,   28,   20,
  1027.        62,   75,   55,   27,   49,   28,  703,   19,   75,   54,
  1028.        58,   20,   56,   56,   68,   58,   62,   80,   68,   19,
  1029.        76,   83,   83,   20,   21,   80,  107,   27,   58,   28,
  1030.        76,  107,   83,   90,   89,   83,   21,   21,   21,   21,
  1031.  
  1032.        21,   21,   21,   21,   21,   21,   57,   90,   57,   57,
  1033.        57,   57,   57,   57,   57,   57,   57,   95,   95,  100,
  1034.       100,  102,  102,  702,   21,   21,   21,   21,   21,   21,
  1035.        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
  1036.        21,   21,   21,   21,   21,   21,   21,   21,   21,   25,
  1037.        77,   93,   77,   25,  191,   96,  158,   97,  700,  101,
  1038.       101,   77,   93,   93,  101,   25,   96,   96,   97,   97,
  1039.       191,   96,  106,  106,  108,  108,  111,  111,  699,  104,
  1040.       697,   25,   25,   25,   25,   25,   25,   25,  158,   25,
  1041.       104,  104,   25,   25,   25,   25,   25,   25,   25,   25,
  1042.  
  1043.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  1044.        25,   25,   25,   25,   25,   25,   25,   25,   29,   29,
  1045.        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
  1046.        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
  1047.        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
  1048.        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
  1049.        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
  1050.        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
  1051.        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
  1052.        29,   29,   31,   31,   31,   31,   31,   31,   31,   31,
  1053.  
  1054.        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
  1055.        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
  1056.        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
  1057.        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
  1058.        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
  1059.        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
  1060.        31,   31,   31,   31,   31,   31,   59,  105,   59,   59,
  1061.        59,   59,   59,   59,   59,   59,   59,  696,  105,  105,
  1062.       114,  114,  116,  116,   59,  120,  120,   59,   59,   59,
  1063.       118,  118,  118,  105,  123,  123,  124,  125,  125,   59,
  1064.  
  1065.       127,  124,  134,  134,  136,  127,   59,  137,  137,  136,
  1066.       139,  140,  140,  140,   59,  139,  157,   59,   60,  300,
  1067.        60,   60,   60,   60,   60,   60,   60,   60,   60,  142,
  1068.       142,  147,  147,  143,  150,  150,   60,  105,  143,   60,
  1069.        60,  145,  152,  153,  153,  300,  145,  152,  156,  156,
  1070.       128,   60,  157,  692,  160,  164,  164,  168,   60,  160,
  1071.       170,  170,  168,  180,  180,  182,   60,  128,  128,  128,
  1072.       128,  128,  128,  128,  128,  128,  159,  159,  159,  159,
  1073.       159,  159,  159,  159,  159,  161,  196,  161,  161,  161,
  1074.       161,  161,  161,  161,  161,  161,  189,  190,  219,  211,
  1075.  
  1076.       192,  182,  196,  161,  190,  192,  161,  161,  161,  197,
  1077.       240,  243,  253,  238,  197,  211,  202,  202,  161,  202,
  1078.       238,  212,  240,  253,  253,  161,  212,  243,  189,  208,
  1079.       208,  202,  202,  161,  219,  242,  161,  162,  202,  162,
  1080.       162,  162,  162,  162,  162,  162,  162,  162,  208,  205,
  1081.       205,  251,  205,  242,  246,  162,  208,  252,  162,  162,
  1082.       206,  206,  206,  246,  205,  205,  247,  251,  626,  247,
  1083.       162,  205,  259,  252,  256,  256,  690,  162,  626,  206,
  1084.       261,  261,  371,  259,  259,  162,  207,  206,  207,  371,
  1085.       206,  207,  207,  207,  207,  207,  207,  207,  207,  207,
  1086.  
  1087.       222,  689,  222,  222,  222,  222,  263,  263,  222,  273,
  1088.       254,  222,  257,  222,  273,  222,  222,  222,  222,  222,
  1089.       222,  254,  254,  257,  257,  266,  254,  269,  257,  262,
  1090.       262,  268,  268,  271,  262,  688,  266,  266,  269,  269,
  1091.       270,  270,  270,  687,  271,  271,  272,  272,  277,  277,
  1092.       280,  280,  294,  269,  282,  282,  284,  284,  284,  271,
  1093.       286,  286,  288,  288,  291,  291,  299,  299,  686,  294,
  1094.       294,  294,  294,  294,  294,  294,  294,  294,  303,  303,
  1095.       306,  306,  306,  308,  308,  309,  309,  309,  309,  309,
  1096.       309,  309,  309,  309,  315,  315,  323,  269,  317,  317,
  1097.  
  1098.       320,  320,  326,  271,  322,  322,  325,  328,  325,  329,
  1099.       329,  368,  329,  328,  331,  331,  685,  331,  339,  339,
  1100.       334,  334,  345,  345,  329,  329,  374,  389,  389,  331,
  1101.       331,  329,  323,  365,  326,  416,  331,  418,  683,  334,
  1102.       416,  374,  418,  368,  325,  328,  332,  334,  332,  332,
  1103.       332,  332,  332,  332,  332,  332,  332,  380,  355,  355,
  1104.       415,  355,  358,  358,  332,  380,  417,  332,  332,  365,
  1105.       360,  682,  360,  355,  355,  380,  415,  421,  421,  332,
  1106.       355,  358,  417,  431,  432,  360,  332,  428,  429,  358,
  1107.       333,  360,  333,  679,  332,  333,  333,  333,  333,  333,
  1108.  
  1109.       333,  333,  333,  333,  336,  678,  336,  336,  336,  336,
  1110.       336,  336,  336,  336,  336,  431,  432,  482,  482,  361,
  1111.       361,  677,  336,  428,  429,  336,  336,  359,  359,  359,
  1112.       359,  359,  359,  359,  359,  359,  478,  336,  361,  485,
  1113.       675,  674,  485,  478,  336,  672,  361,  667,  353,  666,
  1114.       353,  665,  336,  353,  353,  353,  353,  353,  353,  353,
  1115.       353,  353,  356,  430,  356,  430,  664,  356,  356,  356,
  1116.       356,  356,  356,  356,  356,  356,  370,  370,  370,  370,
  1117.       370,  370,  370,  370,  372,  372,  372,  372,  372,  372,
  1118.       372,  372,  433,  436,  436,  441,  436,  441,  433,  663,
  1119.  
  1120.       662,  430,  445,  660,  445,  370,  658,  657,  436,  436,
  1121.       441,  656,  655,  654,  370,  436,  441,  445,  653,  652,
  1122.       370,  370,  651,  445,  649,  648,  434,  647,  434,  646,
  1123.       433,  434,  434,  434,  434,  434,  434,  434,  434,  434,
  1124.       437,  644,  437,  439,  439,  437,  437,  437,  437,  437,
  1125.       437,  437,  437,  437,  477,  477,  477,  477,  477,  477,
  1126.       477,  477,  439,  442,  442,  449,  523,  449,  523,  642,
  1127.       439,  440,  440,  440,  440,  440,  440,  440,  440,  440,
  1128.       449,  523,  442,  641,  640,  639,  449,  523,  638,  637,
  1129.       442,  444,  444,  444,  444,  444,  444,  444,  444,  444,
  1130.  
  1131.       446,  636,  446,  635,  634,  446,  446,  446,  446,  446,
  1132.       446,  446,  446,  446,  448,  448,  448,  448,  448,  448,
  1133.       448,  448,  448,  451,  451,  522,  522,  522,  522,  522,
  1134.       522,  522,  522,  522,  633,  632,  631,  630,  629,  628,
  1135.       627,  625,  451,  624,  623,  622,  524,  621,  524,  620,
  1136.       451,  524,  524,  524,  524,  524,  524,  524,  524,  524,
  1137.       526,  526,  526,  526,  526,  526,  526,  526,  526,  527,
  1138.       613,  527,  529,  529,  531,  531,  531,  531,  531,  531,
  1139.       531,  531,  531,  532,  527,  532,  609,  608,  607,  606,
  1140.       527,  529,  605,  604,  603,  602,  601,  600,  532,  529,
  1141.  
  1142.       587,  599,  587,  597,  532,  586,  586,  586,  586,  586,
  1143.       586,  586,  586,  586,  596,  587,  595,  594,  593,  591,
  1144.       590,  587,  711,  711,  711,  711,  711,  711,  711,  711,
  1145.       711,  711,  711,  711,  711,  711,  711,  711,  711,  711,
  1146.       711,  711,  711,  711,  711,  711,  712,  712,  712,  712,
  1147.       712,  712,  712,  712,  712,  712,  712,  712,  712,  712,
  1148.       712,  712,  712,  712,  712,  712,  712,  712,  712,  712,
  1149.       713,  713,  713,  713,  713,  713,  713,  713,  713,  713,
  1150.       713,  713,  713,  713,  713,  713,  713,  713,  713,  713,
  1151.       713,  713,  713,  713,  714,  714,  714,  714,  714,  714,
  1152.  
  1153.       714,  714,  714,  714,  714,  714,  714,  714,  714,  714,
  1154.       714,  714,  714,  714,  714,  714,  714,  714,  715,  715,
  1155.       715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
  1156.       715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
  1157.       715,  715,  716,  716,  716,  716,  716,  716,  716,  716,
  1158.       716,  716,  716,  716,  716,  716,  716,  716,  716,  716,
  1159.       716,  716,  716,  716,  716,  716,  717,  717,  717,  717,
  1160.       717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
  1161.       717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
  1162.       718,  718,  718,  718,  718,  718,  718,  718,  718,  718,
  1163.  
  1164.       718,  718,  718,  718,  718,  718,  718,  718,  718,  718,
  1165.       718,  718,  718,  718,  719,  719,  719,  719,  719,  719,
  1166.       719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
  1167.       719,  719,  719,  719,  719,  719,  719,  719,  720,  720,
  1168.       720,  720,  720,  720,  720,  720,  720,  720,  720,  720,
  1169.       720,  720,  720,  720,  720,  720,  720,  720,  720,  720,
  1170.       720,  720,  721,  721,  721,  721,  721,  721,  721,  721,
  1171.       721,  721,  721,  721,  721,  721,  721,  721,  721,  721,
  1172.       721,  721,  721,  721,  721,  721,  722,  722,  722,  722,
  1173.       722,  722,  722,  722,  722,  722,  722,  722,  722,  722,
  1174.  
  1175.       722,  722,  722,  722,  722,  722,  722,  722,  722,  722,
  1176.       723,  723,  723,  723,  723,  723,  723,  723,  723,  723,
  1177.       723,  723,  723,  723,  723,  723,  723,  723,  723,  723,
  1178.       723,  723,  723,  723,  724,  724,  724,  724,  724,  589,
  1179.       724,  724,  724,  724,  724,  724,  724,  724,  724,  724,
  1180.       724,  724,  724,  724,  724,  724,  724,  724,  725,  588,
  1181.       585,  725,  725,  725,  725,  725,  725,  725,  725,  725,
  1182.       725,  725,  725,  726,  726,  584,  582,  726,  726,  726,
  1183.       581,  726,  726,  726,  726,  726,  726,  726,  726,  726,
  1184.       726,  726,  726,  726,  726,  726,  726,  727,  727,  727,
  1185.  
  1186.       727,  727,  727,  727,  727,  727,  727,  727,  727,  727,
  1187.       727,  727,  727,  727,  727,  727,  727,  727,  727,  727,
  1188.       727,  728,  728,  579,  578,  728,  728,  728,  728,  728,
  1189.       728,  728,  728,  728,  728,  728,  728,  728,  728,  728,
  1190.       728,  728,  728,  728,  728,  729,  729,  729,  729,  729,
  1191.       729,  730,  730,  730,  730,  577,  730,  730,  730,  730,
  1192.       730,  730,  576,  730,  730,  730,  730,  730,  730,  730,
  1193.       730,  730,  730,  730,  730,  731,  731,  731,  731,  575,
  1194.       731,  731,  731,  731,  731,  731,  731,  731,  731,  731,
  1195.       731,  731,  731,  731,  731,  731,  731,  731,  731,  732,
  1196.  
  1197.       732,  732,  574,  572,  571,  570,  568,  732,  733,  567,
  1198.       566,  733,  733,  733,  733,  733,  733,  733,  733,  733,
  1199.       733,  733,  733,  734,  734,  565,  562,  734,  734,  734,
  1200.       734,  734,  734,  734,  734,  734,  734,  734,  734,  734,
  1201.       734,  734,  734,  734,  734,  734,  734,  735,  735,  561,
  1202.       560,  735,  735,  735,  735,  735,  735,  735,  735,  735,
  1203.       735,  735,  735,  735,  735,  735,  735,  735,  735,  735,
  1204.       735,  736,  559,  558,  736,  736,  736,  736,  736,  736,
  1205.       736,  736,  736,  736,  736,  736,  737,  737,  557,  556,
  1206.       737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
  1207.  
  1208.       737,  737,  738,  738,  738,  738,  738,  738,  738,  738,
  1209.       738,  738,  555,  738,  738,  738,  738,  738,  738,  738,
  1210.       738,  738,  738,  738,  738,  738,  739,  739,  739,  739,
  1211.       739,  739,  553,  739,  739,  739,  739,  739,  739,  739,
  1212.       739,  739,  739,  739,  739,  739,  739,  739,  739,  739,
  1213.       740,  740,  740,  740,  740,  740,  552,  740,  740,  740,
  1214.       740,  740,  740,  740,  740,  740,  740,  740,  740,  740,
  1215.       740,  740,  740,  740,  741,  551,  550,  549,  741,  741,
  1216.       539,  741,  538,  537,  741,  741,  536,  741,  742,  535,
  1217.       534,  533,  742,  742,  521,  742,  520,  517,  742,  742,
  1218.  
  1219.       516,  742,  743,  514,  513,  743,  743,  743,  512,  511,
  1220.       510,  743,  743,  743,  744,  744,  744,  744,  744,  744,
  1221.       744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
  1222.       744,  744,  744,  744,  744,  744,  744,  744,  745,  745,
  1223.       745,  745,  745,  509,  745,  745,  745,  745,  745,  745,
  1224.       745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
  1225.       745,  745,  746,  746,  508,  507,  746,  746,  746,  506,
  1226.       746,  746,  746,  746,  746,  746,  746,  746,  746,  746,
  1227.       746,  746,  746,  746,  746,  746,  747,  747,  747,  747,
  1228.       747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
  1229.  
  1230.       747,  747,  747,  747,  747,  747,  747,  747,  747,  747,
  1231.       748,  748,  505,  504,  748,  748,  748,  748,  748,  748,
  1232.       748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
  1233.       748,  748,  748,  748,  749,  749,  749,  749,  749,  749,
  1234.       750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
  1235.       750,  750,  750,  750,  750,  750,  750,  750,  750,  750,
  1236.       750,  750,  750,  750,  751,  751,  751,  751,  751,  751,
  1237.       751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
  1238.       751,  751,  751,  751,  751,  751,  751,  751,  752,  752,
  1239.       752,  502,  500,  499,  496,  495,  752,  753,  494,  493,
  1240.  
  1241.       753,  753,  753,  753,  753,  753,  753,  753,  753,  753,
  1242.       753,  753,  754,  754,  490,  488,  754,  754,  754,  754,
  1243.       754,  754,  754,  754,  754,  754,  754,  754,  754,  754,
  1244.       754,  754,  754,  754,  754,  754,  755,  755,  487,  755,
  1245.       755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
  1246.       755,  755,  755,  755,  755,  755,  755,  755,  755,  755,
  1247.       756,  756,  486,  484,  756,  756,  756,  756,  756,  756,
  1248.       756,  756,  756,  756,  756,  756,  756,  756,  756,  756,
  1249.       756,  756,  756,  756,  757,  757,  483,  757,  757,  757,
  1250.       757,  757,  757,  757,  757,  757,  757,  757,  757,  757,
  1251.  
  1252.       757,  757,  757,  757,  757,  757,  757,  757,  758,  481,
  1253.       480,  479,  758,  758,  476,  758,  475,  466,  758,  758,
  1254.       465,  758,  759,  464,  463,  462,  759,  759,  461,  759,
  1255.       443,  425,  759,  759,  424,  759,  760,  414,  413,  760,
  1256.       760,  760,  412,  411,  410,  760,  760,  760,  761,  409,
  1257.       408,  761,  761,  761,  761,  761,  761,  761,  761,  761,
  1258.       761,  761,  761,  762,  762,  407,  406,  762,  762,  762,
  1259.       762,  762,  762,  762,  762,  762,  762,  762,  762,  763,
  1260.       763,  763,  763,  763,  763,  763,  763,  763,  763,  405,
  1261.       763,  763,  763,  763,  763,  763,  763,  763,  763,  763,
  1262.  
  1263.       763,  763,  763,  764,  764,  764,  764,  764,  764,  404,
  1264.       764,  764,  764,  764,  764,  764,  764,  764,  764,  764,
  1265.       764,  764,  764,  764,  764,  764,  764,  765,  765,  765,
  1266.       765,  765,  765,  403,  765,  765,  765,  765,  765,  765,
  1267.       765,  765,  765,  765,  765,  765,  765,  765,  765,  765,
  1268.       765,  766,  402,  401,  400,  766,  766,  398,  766,  397,
  1269.       395,  766,  766,  394,  766,  767,  393,  392,  391,  390,
  1270.       767,  388,  767,  387,  386,  385,  767,  383,  767,  768,
  1271.       382,  381,  768,  768,  768,  379,  768,  768,  768,  768,
  1272.       768,  378,  768,  768,  769,  769,  769,  769,  769,  769,
  1273.  
  1274.       769,  769,  769,  769,  769,  769,  769,  769,  769,  769,
  1275.       769,  769,  769,  769,  769,  769,  769,  769,  770,  770,
  1276.       770,  770,  770,  770,  770,  770,  770,  770,  770,  770,
  1277.       770,  770,  770,  770,  770,  770,  770,  770,  770,  770,
  1278.       770,  770,  771,  377,  376,  771,  771,  771,  771,  771,
  1279.       771,  771,  771,  771,  771,  771,  771,  772,  375,  373,
  1280.       369,  367,  772,  343,  772,  342,  340,  311,  772,  304,
  1281.       772,  773,  297,  296,  293,  279,  773,  278,  773,  275,
  1282.       267,  248,  773,  245,  773,  774,  244,  241,  239,  236,
  1283.       774,  235,  774,  234,  233,  232,  774,  231,  774,  775,
  1284.  
  1285.       230,  229,  228,  227,  775,  226,  775,  225,  224,  223,
  1286.       775,  220,  775,  776,  217,  213,  201,  185,  776,  184,
  1287.       776,  169,  165,  144,  776,  131,  776,  777,  130,  113,
  1288.       112,   87,  777,   86,  777,   85,   84,   82,  777,   81,
  1289.       777,  778,   79,   74,   72,   71,  778,   64,  778,   53,
  1290.        50,   48,  778,   47,  778,   45,   41,   34,   33,  710,
  1291.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  1292.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  1293.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  1294.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  1295.  
  1296.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  1297.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  1298.       710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
  1299.       710,  710,  710,  710
  1300.     } ;
  1301.  
  1302. static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
  1303. static char *yy_full_match;
  1304. static int yy_lp;
  1305. static int yy_looking_for_trail_begin = 0;
  1306. static int yy_full_lp;
  1307. static int *yy_full_state;
  1308. #define YY_TRAILING_MASK 0x2000
  1309. #define YY_TRAILING_HEAD_MASK 0x4000
  1310. #define REJECT \
  1311. { \
  1312. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
  1313. yy_cp = yy_full_match; /* restore poss. backed-over text */ \
  1314. yy_lp = yy_full_lp; /* restore orig. accepting pos. */ \
  1315. yy_state_ptr = yy_full_state; /* restore orig. state */ \
  1316. yy_current_state = *yy_state_ptr; /* restore curr. state */ \
  1317. ++yy_lp; \
  1318. goto find_rule; \
  1319. }
  1320. #define yymore() yymore_used_but_not_detected
  1321. #define YY_MORE_ADJ 0
  1322. #define YY_RESTORE_YY_MORE_OFFSET
  1323. char *yytext;
  1324. #define INITIAL 0
  1325. #define START_COMMENT 1
  1326. #define COMMENT 2
  1327. #define SPECIAL_COMMENT 3
  1328.  
  1329. #define START_COMMENT_CPP 4
  1330. #define COMMENT_CPP 5
  1331. #define SPECIAL_COMMENT_CPP 6
  1332.  
  1333. #define CPP 7
  1334. #define CPP_START 8
  1335.  
  1336. #define CPP_INCLUDE 9
  1337. #define CPP_INC_FILE 10
  1338. #define CPP_INC_FLAGS 11
  1339.  
  1340. #define CPP_DEFINE 12
  1341. #define CPP_DEFINE_ARGP 13
  1342. #define CPP_DEFINE_BODY 14
  1343. #define CPP_DEFINE_ARGS 15
  1344.  
  1345. #define GNU_LABEL 16
  1346. #define GNU_ATTRIBUTE 17
  1347. #define GNU_EXTENSION 18
  1348. #define GNU_TYPEOF 19
  1349.  
  1350. /***************************************
  1351.   $Header: /home/amb/cxref/RCS/parse.l 1.23 1997/11/20 19:57:40 amb Exp $
  1352.  
  1353.   C Cross Referencing & Documentation tool. Version 1.4a.
  1354.  
  1355.   C lexical analyser
  1356.   CPP processing, including GNU extensions, using yylval as a string.
  1357.   ******************/ /******************
  1358.   Written by Andrew M. Bishop
  1359.  
  1360.   This file Copyright 1995,96,97 Andrew M. Bishop
  1361.   It may be distributed under the GNU Public License, version 2, or
  1362.   any higher version.  See section COPYING of the GNU Public license
  1363.   for conditions under which this file may be redistributed.
  1364.   ***************************************/
  1365.  
  1366. #include "parse-yy.h"
  1367. #include "parse-yacc.h"
  1368. #include "cxref.h"
  1369. #include "memory.h"
  1370.  
  1371. /*+ The name of the current file. +*/
  1372. char* parse_file=NULL;
  1373.  
  1374. /*+ The current line number in the file. +*/
  1375. int parse_line=0;
  1376.  
  1377.  
  1378. /*+ If we are in a header file then ignore the comments. +*/
  1379. extern int in_header;
  1380.  
  1381. /*+ One of the options controlling how comments are processed, +*/
  1382. extern int option_all_comments,       /*+ use all comments not just the specially formattted ones. +*/
  1383.            option_block_comments,     /*+ remove the leading block comment marker. +*/
  1384.            option_no_comments;        /*+ ignore all comments. +*/
  1385.  
  1386. /*+ Flag that indicates if the comment warnings are to be issued. +*/
  1387. extern int option_warn;
  1388.  
  1389.  
  1390. /*+ The flags that come out of GCC when a file is included. +*/
  1391. static int inc_file_flags=0;
  1392.  
  1393. /*+ The value of the thing that is defined (but only if it is simple). +*/
  1394. static char* define_value=NULL;
  1395.  
  1396. /*+ The lex state at the time that a comment is seen. +*/
  1397. static int comment_init_state=INITIAL;
  1398.  
  1399. /*+ To get around the GCC __attribute__ keyword, skip over matched () counted by this. +*/
  1400. static int gnu_att_depth=0;
  1401.  
  1402. /*+ To get around the GCC __typeof__ keyword, skip over matched () counted by this. +*/
  1403. static int gnu_typ_depth=0;
  1404.  
  1405. /*+ If we see a comment immediately after a ',', ';', '};', '},' or ')' then push it before. +*/
  1406. static int push_past=0;
  1407.  
  1408.  
  1409. /*++++++++++++++++++++++++++++++++++++++
  1410.   Reset the Lexer, ready for the next file.
  1411.   ++++++++++++++++++++++++++++++++++++++*/
  1412.  
  1413. void ResetLexer(void)
  1414. {
  1415.  parse_file=NULL;
  1416.  parse_line=0;
  1417.  inc_file_flags=0;
  1418.  define_value=NULL;
  1419.  comment_init_state=INITIAL;
  1420.  gnu_att_depth=0;
  1421.  gnu_typ_depth=0;
  1422.  push_past=0;
  1423.  
  1424.  SeenComment((char*)3);
  1425. }
  1426.  
  1427.  
  1428. /* Macros after this point can all be overridden by user definitions in
  1429.  * section 1.
  1430.  */
  1431.  
  1432. #ifndef YY_SKIP_YYWRAP
  1433. #ifdef __cplusplus
  1434. extern "C" int yywrap YY_PROTO(( void ));
  1435. #else
  1436. extern int yywrap YY_PROTO(( void ));
  1437. #endif
  1438. #endif
  1439.  
  1440. #ifndef YY_NO_UNPUT
  1441. static void yyunput YY_PROTO(( int c, char *buf_ptr ));
  1442. #endif
  1443.  
  1444. #ifndef yytext_ptr
  1445. static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
  1446. #endif
  1447.  
  1448. #ifdef YY_NEED_STRLEN
  1449. static int yy_flex_strlen YY_PROTO(( yyconst char * ));
  1450. #endif
  1451.  
  1452. #ifndef YY_NO_INPUT
  1453. #ifdef __cplusplus
  1454. static int yyinput YY_PROTO(( void ));
  1455. #else
  1456. static int input YY_PROTO(( void ));
  1457. #endif
  1458. #endif
  1459.  
  1460. #if YY_STACK_USED
  1461. static int yy_start_stack_ptr = 0;
  1462. static int yy_start_stack_depth = 0;
  1463. static int *yy_start_stack = 0;
  1464. #ifndef YY_NO_PUSH_STATE
  1465. static void yy_push_state YY_PROTO(( int new_state ));
  1466. #endif
  1467. #ifndef YY_NO_POP_STATE
  1468. static void yy_pop_state YY_PROTO(( void ));
  1469. #endif
  1470. #ifndef YY_NO_TOP_STATE
  1471. static int yy_top_state YY_PROTO(( void ));
  1472. #endif
  1473.  
  1474. #else
  1475. #define YY_NO_PUSH_STATE 1
  1476. #define YY_NO_POP_STATE 1
  1477. #define YY_NO_TOP_STATE 1
  1478. #endif
  1479.  
  1480. #ifdef YY_MALLOC_DECL
  1481. YY_MALLOC_DECL
  1482. #else
  1483. #if __STDC__
  1484. #ifndef __cplusplus
  1485. #include <stdlib.h>
  1486. #endif
  1487. #else
  1488. /* Just try to get by without declaring the routines.  This will fail
  1489.  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
  1490.  * or sizeof(void*) != sizeof(int).
  1491.  */
  1492. #endif
  1493. #endif
  1494.  
  1495. /* Amount of stuff to slurp up with each read. */
  1496. #ifndef YY_READ_BUF_SIZE
  1497. #define YY_READ_BUF_SIZE 8192
  1498. #endif
  1499.  
  1500. /* Copy whatever the last rule matched to the standard output. */
  1501.  
  1502. #ifndef ECHO
  1503. /* This used to be an fputs(), but since the string might contain NUL's,
  1504.  * we now use fwrite().
  1505.  */
  1506. #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
  1507. #endif
  1508.  
  1509. /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  1510.  * is returned in "result".
  1511.  */
  1512. #ifndef YY_INPUT
  1513. #define YY_INPUT(buf,result,max_size) \
  1514.     if ( yy_current_buffer->yy_is_interactive ) \
  1515.         { \
  1516.         int c = '*', n; \
  1517.         for ( n = 0; n < max_size && \
  1518.                  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
  1519.             buf[n] = (char) c; \
  1520.         if ( c == '\n' ) \
  1521.             buf[n++] = (char) c; \
  1522.         if ( c == EOF && ferror( yyin ) ) \
  1523.             YY_FATAL_ERROR( "input in flex scanner failed" ); \
  1524.         result = n; \
  1525.         } \
  1526.     else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
  1527.           && ferror( yyin ) ) \
  1528.         YY_FATAL_ERROR( "input in flex scanner failed" );
  1529. #endif
  1530.  
  1531. /* No semi-colon after return; correct usage is to write "yyterminate();" -
  1532.  * we don't want an extra ';' after the "return" because that will cause
  1533.  * some compilers to complain about unreachable statements.
  1534.  */
  1535. #ifndef yyterminate
  1536. #define yyterminate() return YY_NULL
  1537. #endif
  1538.  
  1539. /* Number of entries by which start-condition stack grows. */
  1540. #ifndef YY_START_STACK_INCR
  1541. #define YY_START_STACK_INCR 25
  1542. #endif
  1543.  
  1544. /* Report a fatal error. */
  1545. #ifndef YY_FATAL_ERROR
  1546. #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  1547. #endif
  1548.  
  1549. /* Default declaration of generated scanner - a define so the user can
  1550.  * easily add parameters.
  1551.  */
  1552. #ifndef YY_DECL
  1553. #define YY_DECL int yylex YY_PROTO(( void ))
  1554. #endif
  1555.  
  1556. /* Code executed at the beginning of each rule, after yytext and yyleng
  1557.  * have been set up.
  1558.  */
  1559. #ifndef YY_USER_ACTION
  1560. #define YY_USER_ACTION
  1561. #endif
  1562.  
  1563. /* Code executed at the end of each rule. */
  1564. #ifndef YY_BREAK
  1565. #define YY_BREAK break;
  1566. #endif
  1567.  
  1568. #define YY_RULE_SETUP \
  1569.     YY_USER_ACTION
  1570.  
  1571. YY_DECL
  1572.     {
  1573.     register yy_state_type yy_current_state;
  1574.     register char *yy_cp, *yy_bp;
  1575.     register int yy_act;
  1576.  
  1577.  
  1578.  
  1579.  /* Comments, could be embedded in a preprocessor directive. */
  1580.  
  1581.  
  1582.     if ( yy_init )
  1583.         {
  1584.         yy_init = 0;
  1585.  
  1586. #ifdef YY_USER_INIT
  1587.         YY_USER_INIT;
  1588. #endif
  1589.  
  1590.         if ( ! yy_start )
  1591.             yy_start = 1;    /* first start state */
  1592.  
  1593.         if ( ! yyin )
  1594.             yyin = stdin;
  1595.  
  1596.         if ( ! yyout )
  1597.             yyout = stdout;
  1598.  
  1599.         if ( ! yy_current_buffer )
  1600.             yy_current_buffer =
  1601.                 yy_create_buffer( yyin, YY_BUF_SIZE );
  1602.  
  1603.         yy_load_buffer_state();
  1604.         }
  1605.  
  1606.     while ( 1 )        /* loops until end-of-file is reached */
  1607.         {
  1608.         yy_cp = yy_c_buf_p;
  1609.  
  1610.         /* Support of yytext. */
  1611.         *yy_cp = yy_hold_char;
  1612.  
  1613.         /* yy_bp points to the position in yy_ch_buf of the start of
  1614.          * the current run.
  1615.          */
  1616.         yy_bp = yy_cp;
  1617.  
  1618.         yy_current_state = yy_start;
  1619.         yy_state_ptr = yy_state_buf;
  1620.         *yy_state_ptr++ = yy_current_state;
  1621. yy_match:
  1622.         do
  1623.             {
  1624.             register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
  1625.             while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1626.                 {
  1627.                 yy_current_state = (int) yy_def[yy_current_state];
  1628.                 if ( yy_current_state >= 711 )
  1629.                     yy_c = yy_meta[(unsigned int) yy_c];
  1630.                 }
  1631.             yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  1632.             *yy_state_ptr++ = yy_current_state;
  1633.             ++yy_cp;
  1634.             }
  1635.         while ( yy_base[yy_current_state] != 2660 );
  1636.  
  1637. yy_find_action:
  1638.         yy_current_state = *--yy_state_ptr;
  1639.         yy_lp = yy_accept[yy_current_state];
  1640. find_rule: /* we branch to this label when backing up */
  1641.         for ( ; ; ) /* until we find what rule we matched */
  1642.             {
  1643.             if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
  1644.                 {
  1645.                 yy_act = yy_acclist[yy_lp];
  1646.                 if ( yy_act & YY_TRAILING_HEAD_MASK ||
  1647.                      yy_looking_for_trail_begin )
  1648.                     {
  1649.                     if ( yy_act == yy_looking_for_trail_begin )
  1650.                         {
  1651.                         yy_looking_for_trail_begin = 0;
  1652.                         yy_act &= ~YY_TRAILING_HEAD_MASK;
  1653.                         break;
  1654.                         }
  1655.                     }
  1656.                 else if ( yy_act & YY_TRAILING_MASK )
  1657.                     {
  1658.                     yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;
  1659.                     yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;
  1660.                     }
  1661.                 else
  1662.                     {
  1663.                     yy_full_match = yy_cp;
  1664.                     yy_full_state = yy_state_ptr;
  1665.                     yy_full_lp = yy_lp;
  1666.                     break;
  1667.                     }
  1668.                 ++yy_lp;
  1669.                 goto find_rule;
  1670.                 }
  1671.             --yy_cp;
  1672.             yy_current_state = *--yy_state_ptr;
  1673.             yy_lp = yy_accept[yy_current_state];
  1674.             }
  1675.  
  1676.         YY_DO_BEFORE_ACTION;
  1677.  
  1678.  
  1679. do_action:    /* This label is used only to access EOF actions. */
  1680.  
  1681.  
  1682.         switch ( yy_act )
  1683.     { /* beginning of action switch */
  1684. case 1:
  1685. YY_RULE_SETUP
  1686. { comment_init_state = INITIAL        ; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
  1687.     YY_BREAK
  1688. case 2:
  1689. YY_RULE_SETUP
  1690. { comment_init_state = CPP_START      ; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
  1691.     YY_BREAK
  1692. case 3:
  1693. YY_RULE_SETUP
  1694. { comment_init_state = CPP            ; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
  1695.     YY_BREAK
  1696. case 4:
  1697. YY_RULE_SETUP
  1698. { comment_init_state = CPP_DEFINE     ; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
  1699.     YY_BREAK
  1700. case 5:
  1701. YY_RULE_SETUP
  1702. { comment_init_state = CPP_INCLUDE    ; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
  1703.     YY_BREAK
  1704. case 6:
  1705. YY_RULE_SETUP
  1706. { comment_init_state = CPP_DEFINE_ARGP; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
  1707.     YY_BREAK
  1708. case 7:
  1709. YY_RULE_SETUP
  1710. { comment_init_state = CPP_DEFINE_ARGS; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
  1711.     YY_BREAK
  1712. case 8:
  1713. YY_RULE_SETUP
  1714. { comment_init_state = CPP_DEFINE_BODY; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
  1715.     YY_BREAK
  1716. case 9:
  1717. YY_RULE_SETUP
  1718. { comment_init_state = CPP_INC_FILE   ; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
  1719.     YY_BREAK
  1720. case 10:
  1721. YY_RULE_SETUP
  1722. { comment_init_state = CPP_INC_FLAGS  ; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
  1723.     YY_BREAK
  1724. case 11:
  1725. YY_RULE_SETUP
  1726. { BEGIN(SPECIAL_COMMENT); }
  1727.     YY_BREAK
  1728. case 12:
  1729. YY_RULE_SETUP
  1730. { BEGIN(SPECIAL_COMMENT); }
  1731.     YY_BREAK
  1732. case 13:
  1733. YY_RULE_SETUP
  1734. { BEGIN(comment_init_state); while(push_past) {push_past--;unput(yylval[push_past]);} }
  1735.     YY_BREAK
  1736. case 14:
  1737. YY_RULE_SETUP
  1738. { if(option_all_comments) SeenComment(yytext); parse_line++;
  1739.                                     if(option_all_comments) BEGIN(SPECIAL_COMMENT); else BEGIN(COMMENT); }
  1740.     YY_BREAK
  1741. case 15:
  1742. YY_RULE_SETUP
  1743. { if(option_all_comments) SeenComment(yytext);
  1744.                                     if(option_all_comments) BEGIN(SPECIAL_COMMENT); else BEGIN(COMMENT); }
  1745.     YY_BREAK
  1746. case 16:
  1747. YY_RULE_SETUP
  1748. { BEGIN(SPECIAL_COMMENT_CPP); }
  1749.     YY_BREAK
  1750. case 17:
  1751. YY_RULE_SETUP
  1752. { BEGIN(SPECIAL_COMMENT_CPP); }
  1753.     YY_BREAK
  1754. case 18:
  1755. YY_RULE_SETUP
  1756. { if(comment_init_state==CPP_INCLUDE || comment_init_state==CPP_DEFINE) comment_init_state=INITIAL;
  1757.                                     parse_line++; BEGIN(comment_init_state); while(push_past) {push_past--;unput(yylval[push_past]);} }
  1758.     YY_BREAK
  1759. case 19:
  1760. YY_RULE_SETUP
  1761. { if(option_all_comments) BEGIN(SPECIAL_COMMENT_CPP); else BEGIN(COMMENT_CPP); }
  1762.     YY_BREAK
  1763. case 20:
  1764. YY_RULE_SETUP
  1765. { parse_line++; }
  1766.     YY_BREAK
  1767. case 21:
  1768. YY_RULE_SETUP
  1769. { }
  1770.     YY_BREAK
  1771. case 22:
  1772. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1773. yy_c_buf_p = yy_cp -= 2;
  1774. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1775. YY_RULE_SETUP
  1776. { if(option_warn&COMMENT) fprintf(stderr,"%s:%d: Warning unbalanced cxref comment; starts simple, ends special.\n",parse_file,parse_line); }
  1777.     YY_BREAK
  1778. case 23:
  1779. YY_RULE_SETUP
  1780. { BEGIN(comment_init_state); while(push_past) {push_past--;unput(yylval[push_past]);} }
  1781.     YY_BREAK
  1782. case 24:
  1783. YY_RULE_SETUP
  1784. { if(comment_init_state==CPP_INCLUDE || comment_init_state==CPP_DEFINE) comment_init_state=INITIAL;
  1785.                                     parse_line++; BEGIN(comment_init_state); while(push_past) {push_past--;unput(yylval[push_past]);} }
  1786.     YY_BREAK
  1787. case 25:
  1788. YY_RULE_SETUP
  1789. { if(!option_no_comments) SeenComment(yytext); parse_line++; }
  1790.     YY_BREAK
  1791. case 26:
  1792. YY_RULE_SETUP
  1793. { parse_line++;
  1794.                                     if(option_block_comments) yytext[0]='\n',yytext[1]=0;
  1795.                                     if(!option_no_comments) SeenComment(yytext); }
  1796.     YY_BREAK
  1797. case 27:
  1798. YY_RULE_SETUP
  1799. { if(!option_no_comments) SeenComment(yytext); }
  1800.     YY_BREAK
  1801. case 28:
  1802. YY_RULE_SETUP
  1803. { if(!option_no_comments) SeenComment(yytext); }
  1804.     YY_BREAK
  1805. case 29:
  1806. YY_RULE_SETUP
  1807. { if(!option_no_comments) SeenComment((char*)0);
  1808.                                     BEGIN(comment_init_state); while(push_past) {push_past--;unput(yylval[push_past]);} }
  1809.     YY_BREAK
  1810. case 30:
  1811. YY_RULE_SETUP
  1812. { if(!option_no_comments) SeenComment((char*)1);
  1813.                                     if(!in_header && comment_init_state==CPP_DEFINE_ARGS) SeenDefineFuncArgComment();
  1814.                                     if(!in_header && comment_init_state==CPP_DEFINE_BODY) SeenDefineComment();
  1815.                                     if(!in_header && comment_init_state==CPP_INCLUDE)     SeenIncludeComment();
  1816.                                     BEGIN(comment_init_state); while(push_past) {push_past--;unput(yylval[push_past]);} }
  1817.     YY_BREAK
  1818. case 31:
  1819. YY_RULE_SETUP
  1820. { if(!option_all_comments && option_warn&COMMENT)
  1821.                                        fprintf(stderr,"%s:%d: Warning unbalanced cxref comment; starts special, ends simple.\n",parse_file,parse_line);
  1822.                                     if(option_all_comments) SeenComment((char*)2); else if(!option_no_comments) SeenComment((char*)1);
  1823.                                     if(!in_header && comment_init_state==CPP_DEFINE_ARGS) SeenDefineFuncArgComment();
  1824.                                     if(!in_header && comment_init_state==CPP_DEFINE_BODY) SeenDefineComment();
  1825.                                     if(!in_header && comment_init_state==CPP_INCLUDE)     SeenIncludeComment();
  1826.                                     BEGIN(comment_init_state); while(push_past) {push_past--;unput(yylval[push_past]);} }
  1827.     YY_BREAK
  1828. case 32:
  1829. YY_RULE_SETUP
  1830. { if(!option_no_comments) SeenComment(yytext); }
  1831.     YY_BREAK
  1832. case 33:
  1833. YY_RULE_SETUP
  1834. { if(!option_no_comments) SeenComment(yytext); }
  1835.     YY_BREAK
  1836. case 34:
  1837. YY_RULE_SETUP
  1838. { if(!option_no_comments) SeenComment((char*)1);
  1839.                                     if(!in_header && comment_init_state==CPP_DEFINE_ARGS) SeenDefineFuncArgComment();
  1840.                                     if(!in_header && comment_init_state==CPP_DEFINE_BODY) SeenDefineComment();
  1841.                                     if(!in_header && comment_init_state==CPP_INCLUDE)     SeenIncludeComment();
  1842.                                     if(comment_init_state==CPP_INCLUDE || comment_init_state==CPP_DEFINE) comment_init_state=INITIAL;
  1843.                                     parse_line++; BEGIN(comment_init_state); while(push_past) {push_past--;unput(yylval[push_past]);} }
  1844.     YY_BREAK
  1845. /* Preprocessor directives, only valid at the top level. */
  1846. case 35:
  1847. YY_RULE_SETUP
  1848. { BEGIN(CPP_START); }
  1849.     YY_BREAK
  1850. case 36:
  1851. YY_RULE_SETUP
  1852. { parse_line=atoi(yytext); BEGIN(CPP_INC_FILE);}
  1853.     YY_BREAK
  1854. case 37:
  1855. YY_RULE_SETUP
  1856. { BEGIN(CPP_DEFINE); }
  1857.     YY_BREAK
  1858. case 38:
  1859. YY_RULE_SETUP
  1860. { BEGIN(CPP_INCLUDE); }
  1861.     YY_BREAK
  1862. case 39:
  1863. YY_RULE_SETUP
  1864. { BEGIN(CPP); }
  1865.     YY_BREAK
  1866. case 40:
  1867. YY_RULE_SETUP
  1868. { }
  1869.     YY_BREAK
  1870. case 41:
  1871. YY_RULE_SETUP
  1872. { parse_line++; }
  1873.     YY_BREAK
  1874. case 42:
  1875. YY_RULE_SETUP
  1876. { parse_line++; BEGIN(INITIAL); }
  1877.     YY_BREAK
  1878. case 43:
  1879. YY_RULE_SETUP
  1880. { if(!in_header) SeenDefine(yytext); BEGIN(CPP_DEFINE_ARGP); }
  1881.     YY_BREAK
  1882. case 44:
  1883. YY_RULE_SETUP
  1884. { parse_line++; }
  1885.     YY_BREAK
  1886. case 45:
  1887. YY_RULE_SETUP
  1888. { }
  1889.     YY_BREAK
  1890. case 46:
  1891. YY_RULE_SETUP
  1892. { BEGIN(CPP_DEFINE_ARGS); }
  1893.     YY_BREAK
  1894. case 47:
  1895. YY_RULE_SETUP
  1896. { parse_line++; BEGIN(INITIAL); }
  1897.     YY_BREAK
  1898. case 48:
  1899. YY_RULE_SETUP
  1900. { define_value=NULL; BEGIN(CPP_DEFINE_BODY); }
  1901.     YY_BREAK
  1902. case 49:
  1903. YY_RULE_SETUP
  1904. { parse_line++; }
  1905.     YY_BREAK
  1906. case 50:
  1907. YY_RULE_SETUP
  1908. { if(!in_header) SeenDefineFunctionArg(yytext); }
  1909.     YY_BREAK
  1910. case 51:
  1911. YY_RULE_SETUP
  1912. { if(!in_header) SeenDefineFunctionArg(yytext); }
  1913.     YY_BREAK
  1914. case 52:
  1915. YY_RULE_SETUP
  1916. { }
  1917.     YY_BREAK
  1918. case 53:
  1919. YY_RULE_SETUP
  1920. { }
  1921.     YY_BREAK
  1922. case 54:
  1923. YY_RULE_SETUP
  1924. { parse_line++; }
  1925.     YY_BREAK
  1926. case 55:
  1927. YY_RULE_SETUP
  1928. { define_value=(char*)1; BEGIN(CPP_DEFINE_BODY); }
  1929.     YY_BREAK
  1930. case 56:
  1931. YY_RULE_SETUP
  1932. { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
  1933.     YY_BREAK
  1934. case 57:
  1935. YY_RULE_SETUP
  1936. { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
  1937.     YY_BREAK
  1938. case 58:
  1939. YY_RULE_SETUP
  1940. { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
  1941.     YY_BREAK
  1942. case 59:
  1943. YY_RULE_SETUP
  1944. { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
  1945.     YY_BREAK
  1946. case 60:
  1947. YY_RULE_SETUP
  1948. { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
  1949.     YY_BREAK
  1950. case 61:
  1951. YY_RULE_SETUP
  1952. { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
  1953.     YY_BREAK
  1954. case 62:
  1955. YY_RULE_SETUP
  1956. { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
  1957.     YY_BREAK
  1958. case 63:
  1959. YY_RULE_SETUP
  1960. { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
  1961.     YY_BREAK
  1962. case 64:
  1963. YY_RULE_SETUP
  1964. { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
  1965.     YY_BREAK
  1966. case 65:
  1967. YY_RULE_SETUP
  1968. { }
  1969.     YY_BREAK
  1970. case 66:
  1971. YY_RULE_SETUP
  1972. { parse_line++; }
  1973.     YY_BREAK
  1974. case 67:
  1975. YY_RULE_SETUP
  1976. { parse_line++; if(define_value>(char*)1) SeenDefineValue(define_value); BEGIN(INITIAL); }
  1977.     YY_BREAK
  1978. case 68:
  1979. YY_RULE_SETUP
  1980. { SeenInclude(yytext); }
  1981.     YY_BREAK
  1982. case 69:
  1983. YY_RULE_SETUP
  1984. { }
  1985.     YY_BREAK
  1986. case 70:
  1987. YY_RULE_SETUP
  1988. { parse_line++; }
  1989.     YY_BREAK
  1990. case 71:
  1991. YY_RULE_SETUP
  1992. { parse_line++; BEGIN(INITIAL); }
  1993.     YY_BREAK
  1994. case 72:
  1995. YY_RULE_SETUP
  1996. { parse_file=CopyString(yytext+1); parse_file[strlen(parse_file)-1]=0;
  1997.                                   SeenComment((char*)3);
  1998.                                   inc_file_flags=0; BEGIN(CPP_INC_FLAGS); }
  1999.     YY_BREAK
  2000. case 73:
  2001. YY_RULE_SETUP
  2002. { inc_file_flags+=1<<atoi(yytext); }
  2003.     YY_BREAK
  2004. case 74:
  2005. YY_RULE_SETUP
  2006. { if(inc_file_flags&6) SeenFileChange(parse_file,inc_file_flags);
  2007.                                   BEGIN(INITIAL); }
  2008.     YY_BREAK
  2009. /* GNU C strangeness. */
  2010. case 75:
  2011. YY_RULE_SETUP
  2012. { yylval="alignof"  ; return(SIZEOF);   }
  2013.     YY_BREAK
  2014. case 76:
  2015. YY_RULE_SETUP
  2016. { yylval="signed"   ; return(SIGNED);   }
  2017.     YY_BREAK
  2018. case 77:
  2019. YY_RULE_SETUP
  2020. { yylval="unsigned" ; return(UNSIGNED); }
  2021.     YY_BREAK
  2022. case 78:
  2023. YY_RULE_SETUP
  2024. { yylval="volatile" ; return(VOLATILE); }
  2025.     YY_BREAK
  2026. case 79:
  2027. YY_RULE_SETUP
  2028. { yylval="const"    ; return(CONST);    }
  2029.     YY_BREAK
  2030. /* olsen: the following two clash with SAS/C keywords. */
  2031. /* ("__inline"|"__inline__")      { yylval="inline"   ; return(INLINE);   } */
  2032. /* ("asm"|"__asm"|"__asm__")      { yylval="asm"      ; return(ASM);      } */
  2033. case 80:
  2034. YY_RULE_SETUP
  2035. { yylval="inline"   ; return(INLINE);   }
  2036.     YY_BREAK
  2037. case 81:
  2038. YY_RULE_SETUP
  2039. { yylval="asm"      ; return(ASM);      }
  2040.     YY_BREAK
  2041. case 82:
  2042. YY_RULE_SETUP
  2043. { BEGIN(GNU_LABEL); }
  2044.     YY_BREAK
  2045. case 83:
  2046. YY_RULE_SETUP
  2047. { }
  2048.     YY_BREAK
  2049. case 84:
  2050. YY_RULE_SETUP
  2051. { BEGIN(INITIAL); }
  2052.     YY_BREAK
  2053. case 85:
  2054. YY_RULE_SETUP
  2055. { gnu_att_depth=0; BEGIN(GNU_ATTRIBUTE); }
  2056.     YY_BREAK
  2057. case 86:
  2058. YY_RULE_SETUP
  2059. { gnu_att_depth++; }
  2060.     YY_BREAK
  2061. case 87:
  2062. YY_RULE_SETUP
  2063. { }
  2064.     YY_BREAK
  2065. case 88:
  2066. YY_RULE_SETUP
  2067. { if(--gnu_att_depth==0) BEGIN(INITIAL); }
  2068.     YY_BREAK
  2069. case 89:
  2070. YY_RULE_SETUP
  2071. { gnu_typ_depth=0; BEGIN(GNU_TYPEOF); }
  2072.     YY_BREAK
  2073. case 90:
  2074. YY_RULE_SETUP
  2075. { gnu_typ_depth++; }
  2076.     YY_BREAK
  2077. case 91:
  2078. YY_RULE_SETUP
  2079. { }
  2080.     YY_BREAK
  2081. case 92:
  2082. YY_RULE_SETUP
  2083. { if(--gnu_typ_depth==0) {BEGIN(INITIAL); yylval="typeof"; return(TYPE_NAME);} }
  2084.     YY_BREAK
  2085. case 93:
  2086. YY_RULE_SETUP
  2087. { }
  2088.     YY_BREAK
  2089. /* olsen: special SAS/C keywords */
  2090. case 94:
  2091. YY_RULE_SETUP
  2092. { }
  2093.     YY_BREAK
  2094. case 95:
  2095. YY_RULE_SETUP
  2096. { }
  2097.     YY_BREAK
  2098. case 96:
  2099. YY_RULE_SETUP
  2100. { }
  2101.     YY_BREAK
  2102. case 97:
  2103. YY_RULE_SETUP
  2104. { }
  2105.     YY_BREAK
  2106. case 98:
  2107. YY_RULE_SETUP
  2108. { }
  2109.     YY_BREAK
  2110. case 99:
  2111. YY_RULE_SETUP
  2112. { }
  2113.     YY_BREAK
  2114. case 100:
  2115. YY_RULE_SETUP
  2116. { }
  2117.     YY_BREAK
  2118. case 101:
  2119. YY_RULE_SETUP
  2120. { }
  2121.     YY_BREAK
  2122. case 102:
  2123. YY_RULE_SETUP
  2124. { }
  2125.     YY_BREAK
  2126. case 103:
  2127. YY_RULE_SETUP
  2128. { }
  2129.     YY_BREAK
  2130. case 104:
  2131. YY_RULE_SETUP
  2132. { }
  2133.     YY_BREAK
  2134. case 105:
  2135. YY_RULE_SETUP
  2136. { }
  2137.     YY_BREAK
  2138. case 106:
  2139. YY_RULE_SETUP
  2140. { }
  2141.     YY_BREAK
  2142. case 107:
  2143. YY_RULE_SETUP
  2144. { }
  2145.     YY_BREAK
  2146. case 108:
  2147. YY_RULE_SETUP
  2148. { }
  2149.     YY_BREAK
  2150. case 109:
  2151. YY_RULE_SETUP
  2152. { }
  2153.     YY_BREAK
  2154. case 110:
  2155. YY_RULE_SETUP
  2156. { }
  2157.     YY_BREAK
  2158. case 111:
  2159. YY_RULE_SETUP
  2160. { }
  2161.     YY_BREAK
  2162. case 112:
  2163. YY_RULE_SETUP
  2164. { }
  2165.     YY_BREAK
  2166. case 113:
  2167. YY_RULE_SETUP
  2168. { }
  2169.     YY_BREAK
  2170. case 114:
  2171. YY_RULE_SETUP
  2172. { }
  2173.     YY_BREAK
  2174. case 115:
  2175. YY_RULE_SETUP
  2176. { }
  2177.     YY_BREAK
  2178. case 116:
  2179. YY_RULE_SETUP
  2180. { }
  2181.     YY_BREAK
  2182. case 117:
  2183. YY_RULE_SETUP
  2184. { }
  2185.     YY_BREAK
  2186. case 118:
  2187. YY_RULE_SETUP
  2188. { }
  2189.     YY_BREAK
  2190. case 119:
  2191. YY_RULE_SETUP
  2192. { }
  2193.     YY_BREAK
  2194. case 120:
  2195. YY_RULE_SETUP
  2196. { }
  2197.     YY_BREAK
  2198. case 121:
  2199. YY_RULE_SETUP
  2200. { }
  2201.     YY_BREAK
  2202. case 122:
  2203. YY_RULE_SETUP
  2204. { }
  2205.     YY_BREAK
  2206. case 123:
  2207. YY_RULE_SETUP
  2208. { }
  2209.     YY_BREAK
  2210. case 124:
  2211. YY_RULE_SETUP
  2212. { }
  2213.     YY_BREAK
  2214. case 125:
  2215. YY_RULE_SETUP
  2216. { }
  2217.     YY_BREAK
  2218. case 126:
  2219. YY_RULE_SETUP
  2220. { }
  2221.     YY_BREAK
  2222. case 127:
  2223. YY_RULE_SETUP
  2224. { }
  2225.     YY_BREAK
  2226. case 128:
  2227. YY_RULE_SETUP
  2228. { }
  2229.     YY_BREAK
  2230. case 129:
  2231. YY_RULE_SETUP
  2232. { }
  2233.     YY_BREAK
  2234. case 130:
  2235. YY_RULE_SETUP
  2236. { }
  2237.     YY_BREAK
  2238. case 131:
  2239. YY_RULE_SETUP
  2240. { }
  2241.     YY_BREAK
  2242. /* C language keywords. */
  2243. case 132:
  2244. YY_RULE_SETUP
  2245. { yylval="auto"    ; return(AUTO);     }
  2246.     YY_BREAK
  2247. case 133:
  2248. YY_RULE_SETUP
  2249. { yylval="break"   ; return(BREAK);    }
  2250.     YY_BREAK
  2251. case 134:
  2252. YY_RULE_SETUP
  2253. { yylval="case"    ; return(CASE);     }
  2254.     YY_BREAK
  2255. case 135:
  2256. YY_RULE_SETUP
  2257. { yylval="char"    ; return(CHAR);     }
  2258.     YY_BREAK
  2259. case 136:
  2260. YY_RULE_SETUP
  2261. { yylval="const"   ; return(CONST);    }
  2262.     YY_BREAK
  2263. case 137:
  2264. YY_RULE_SETUP
  2265. { yylval="continue"; return(CONTINUE); }
  2266.     YY_BREAK
  2267. case 138:
  2268. YY_RULE_SETUP
  2269. { yylval="default" ; return(DEFAULT);  }
  2270.     YY_BREAK
  2271. case 139:
  2272. YY_RULE_SETUP
  2273. { yylval="do"      ; return(DO);       }
  2274.     YY_BREAK
  2275. case 140:
  2276. YY_RULE_SETUP
  2277. { yylval="double"  ; return(DOUBLE);   }
  2278.     YY_BREAK
  2279. case 141:
  2280. YY_RULE_SETUP
  2281. { yylval="else"    ; return(ELSE);     }
  2282.     YY_BREAK
  2283. case 142:
  2284. YY_RULE_SETUP
  2285. { yylval="enum"    ; return(ENUM);     }
  2286.     YY_BREAK
  2287. case 143:
  2288. YY_RULE_SETUP
  2289. { yylval="extern"  ; return(EXTERN);   }
  2290.     YY_BREAK
  2291. case 144:
  2292. YY_RULE_SETUP
  2293. { yylval="float"   ; return(FLOAT);    }
  2294.     YY_BREAK
  2295. case 145:
  2296. YY_RULE_SETUP
  2297. { yylval="for"     ; return(FOR);      }
  2298.     YY_BREAK
  2299. case 146:
  2300. YY_RULE_SETUP
  2301. { yylval="goto"    ; return(GOTO);     }
  2302.     YY_BREAK
  2303. case 147:
  2304. YY_RULE_SETUP
  2305. { yylval="if"      ; return(IF);       }
  2306.     YY_BREAK
  2307. case 148:
  2308. YY_RULE_SETUP
  2309. { yylval="int"     ; return(INT);      }
  2310.     YY_BREAK
  2311. case 149:
  2312. YY_RULE_SETUP
  2313. { yylval="inline"  ; return(INLINE);   }
  2314.     YY_BREAK
  2315. case 150:
  2316. YY_RULE_SETUP
  2317. { yylval="long"    ; return(LONG);     }
  2318.     YY_BREAK
  2319. case 151:
  2320. YY_RULE_SETUP
  2321. { yylval="register"; return(REGISTER); }
  2322.     YY_BREAK
  2323. case 152:
  2324. YY_RULE_SETUP
  2325. { yylval="return"  ; return(RETURN);   }
  2326.     YY_BREAK
  2327. case 153:
  2328. YY_RULE_SETUP
  2329. { yylval="short"   ; return(SHORT);    }
  2330.     YY_BREAK
  2331. case 154:
  2332. YY_RULE_SETUP
  2333. { yylval="signed"  ; return(SIGNED);   }
  2334.     YY_BREAK
  2335. case 155:
  2336. YY_RULE_SETUP
  2337. { yylval="sizeof"  ; return(SIZEOF);   }
  2338.     YY_BREAK
  2339. case 156:
  2340. YY_RULE_SETUP
  2341. { yylval="static"  ; return(STATIC);   }
  2342.     YY_BREAK
  2343. case 157:
  2344. YY_RULE_SETUP
  2345. { yylval="struct"  ; return(STRUCT);   }
  2346.     YY_BREAK
  2347. case 158:
  2348. YY_RULE_SETUP
  2349. { yylval="switch"  ; return(SWITCH);   }
  2350.     YY_BREAK
  2351. case 159:
  2352. YY_RULE_SETUP
  2353. { yylval="typedef" ; return(TYPEDEF);  }
  2354.     YY_BREAK
  2355. case 160:
  2356. YY_RULE_SETUP
  2357. { yylval="union"   ; return(UNION);    }
  2358.     YY_BREAK
  2359. case 161:
  2360. YY_RULE_SETUP
  2361. { yylval="unsigned"; return(UNSIGNED); }
  2362.     YY_BREAK
  2363. case 162:
  2364. YY_RULE_SETUP
  2365. { yylval="void"    ; return(VOID);     }
  2366.     YY_BREAK
  2367. case 163:
  2368. YY_RULE_SETUP
  2369. { yylval="volatile"; return(VOLATILE); }
  2370.     YY_BREAK
  2371. case 164:
  2372. YY_RULE_SETUP
  2373. { yylval="while"   ; return(WHILE);    }
  2374.     YY_BREAK
  2375. /* C language operators. */
  2376. case 165:
  2377. YY_RULE_SETUP
  2378. { yylval="...";  return(ELLIPSES);     }
  2379.     YY_BREAK
  2380. case 166:
  2381. YY_RULE_SETUP
  2382. { yylval=">>=";  return(RIGHT_ASSIGN); }
  2383.     YY_BREAK
  2384. case 167:
  2385. YY_RULE_SETUP
  2386. { yylval="<<=";  return(LEFT_ASSIGN);  }
  2387.     YY_BREAK
  2388. case 168:
  2389. YY_RULE_SETUP
  2390. { yylval="+=";   return(ADD_ASSIGN); }
  2391.     YY_BREAK
  2392. case 169:
  2393. YY_RULE_SETUP
  2394. { yylval="-=";   return(SUB_ASSIGN); }
  2395.     YY_BREAK
  2396. case 170:
  2397. YY_RULE_SETUP
  2398. { yylval="*=";   return(MUL_ASSIGN); }
  2399.     YY_BREAK
  2400. case 171:
  2401. YY_RULE_SETUP
  2402. { yylval="/=";   return(DIV_ASSIGN); }
  2403.     YY_BREAK
  2404. case 172:
  2405. YY_RULE_SETUP
  2406. { yylval="%=";   return(MOD_ASSIGN); }
  2407.     YY_BREAK
  2408. case 173:
  2409. YY_RULE_SETUP
  2410. { yylval="&=";   return(AND_ASSIGN); }
  2411.     YY_BREAK
  2412. case 174:
  2413. YY_RULE_SETUP
  2414. { yylval="^=";   return(XOR_ASSIGN); }
  2415.     YY_BREAK
  2416. case 175:
  2417. YY_RULE_SETUP
  2418. { yylval="|=";   return(OR_ASSIGN);  }
  2419.     YY_BREAK
  2420. case 176:
  2421. YY_RULE_SETUP
  2422. { yylval=">>";   return(RIGHT_SHIFT);}
  2423.     YY_BREAK
  2424. case 177:
  2425. YY_RULE_SETUP
  2426. { yylval="<<";   return(LEFT_SHIFT); }
  2427.     YY_BREAK
  2428. case 178:
  2429. YY_RULE_SETUP
  2430. { yylval="++";   return(INC_OP); }
  2431.     YY_BREAK
  2432. case 179:
  2433. YY_RULE_SETUP
  2434. { yylval="--";   return(DEC_OP); }
  2435.     YY_BREAK
  2436. case 180:
  2437. YY_RULE_SETUP
  2438. { yylval="->";   return(PTR_OP); }
  2439.     YY_BREAK
  2440. case 181:
  2441. YY_RULE_SETUP
  2442. { yylval="&&";   return(AND_OP); }
  2443.     YY_BREAK
  2444. case 182:
  2445. YY_RULE_SETUP
  2446. { yylval="||";   return(OR_OP); }
  2447.     YY_BREAK
  2448. case 183:
  2449. YY_RULE_SETUP
  2450. { yylval="<=";   return(LE_OP); }
  2451.     YY_BREAK
  2452. case 184:
  2453. YY_RULE_SETUP
  2454. { yylval=">=";   return(GE_OP); }
  2455.     YY_BREAK
  2456. case 185:
  2457. YY_RULE_SETUP
  2458. { yylval="==";   return(EQ_OP); }
  2459.     YY_BREAK
  2460. case 186:
  2461. YY_RULE_SETUP
  2462. { yylval="!=";   return(NE_OP); }
  2463.     YY_BREAK
  2464. case 187:
  2465. YY_RULE_SETUP
  2466. { yylval="; ";   push_past=2;
  2467.                           comment_init_state=INITIAL; BEGIN(yytext[strlen(yytext)-1]=='*'?START_COMMENT:START_COMMENT_CPP); }
  2468.     YY_BREAK
  2469. case 188:
  2470. YY_RULE_SETUP
  2471. { yylval=";";    return(';'); }
  2472.     YY_BREAK
  2473. case 189:
  2474. YY_RULE_SETUP
  2475. { yylval="{";    return('{'); }
  2476.     YY_BREAK
  2477. case 190:
  2478. YY_RULE_SETUP
  2479. { yylval="}; ";  push_past=3;
  2480.                           comment_init_state=INITIAL; BEGIN(yytext[strlen(yytext)-1]=='*'?START_COMMENT:START_COMMENT_CPP); }
  2481.     YY_BREAK
  2482. case 191:
  2483. YY_RULE_SETUP
  2484. { yylval="}, ";  push_past=3;
  2485.                           comment_init_state=INITIAL; BEGIN(yytext[strlen(yytext)-1]=='*'?START_COMMENT:START_COMMENT_CPP); }
  2486.     YY_BREAK
  2487. case 192:
  2488. YY_RULE_SETUP
  2489. { yylval="}";    return('}'); }
  2490.     YY_BREAK
  2491. case 193:
  2492. YY_RULE_SETUP
  2493. { yylval=", ";   push_past=2;
  2494.                           comment_init_state=INITIAL; BEGIN(yytext[strlen(yytext)-1]=='*'?START_COMMENT:START_COMMENT_CPP); }
  2495.     YY_BREAK
  2496. case 194:
  2497. YY_RULE_SETUP
  2498. { yylval=",";    return(','); }
  2499.     YY_BREAK
  2500. case 195:
  2501. YY_RULE_SETUP
  2502. { yylval=":";    return(':'); }
  2503.     YY_BREAK
  2504. case 196:
  2505. YY_RULE_SETUP
  2506. { yylval="=";    return('='); }
  2507.     YY_BREAK
  2508. case 197:
  2509. YY_RULE_SETUP
  2510. { yylval="(";    return('('); }
  2511.     YY_BREAK
  2512. case 198:
  2513. YY_RULE_SETUP
  2514. { yylval=") ";   push_past=2;
  2515.                           comment_init_state=INITIAL; BEGIN(yytext[strlen(yytext)-1]=='*'?START_COMMENT:START_COMMENT_CPP); }
  2516.     YY_BREAK
  2517. case 199:
  2518. YY_RULE_SETUP
  2519. { yylval=")";    return(')'); }
  2520.     YY_BREAK
  2521. case 200:
  2522. YY_RULE_SETUP
  2523. { yylval="[";    return('['); }
  2524.     YY_BREAK
  2525. case 201:
  2526. YY_RULE_SETUP
  2527. { yylval="]";    return(']'); }
  2528.     YY_BREAK
  2529. case 202:
  2530. YY_RULE_SETUP
  2531. { yylval=".";    return('.'); }
  2532.     YY_BREAK
  2533. case 203:
  2534. YY_RULE_SETUP
  2535. { yylval="&";    return('&'); }
  2536.     YY_BREAK
  2537. case 204:
  2538. YY_RULE_SETUP
  2539. { yylval="!";    return('!'); }
  2540.     YY_BREAK
  2541. case 205:
  2542. YY_RULE_SETUP
  2543. { yylval="~";    return('~'); }
  2544.     YY_BREAK
  2545. case 206:
  2546. YY_RULE_SETUP
  2547. { yylval="-";    return('-'); }
  2548.     YY_BREAK
  2549. case 207:
  2550. YY_RULE_SETUP
  2551. { yylval="+";    return('+'); }
  2552.     YY_BREAK
  2553. case 208:
  2554. YY_RULE_SETUP
  2555. { yylval="*";    return('*'); }
  2556.     YY_BREAK
  2557. case 209:
  2558. YY_RULE_SETUP
  2559. { yylval="/";    return('/'); }
  2560.     YY_BREAK
  2561. case 210:
  2562. YY_RULE_SETUP
  2563. { yylval="%";    return('%'); }
  2564.     YY_BREAK
  2565. case 211:
  2566. YY_RULE_SETUP
  2567. { yylval="<";    return('<'); }
  2568.     YY_BREAK
  2569. case 212:
  2570. YY_RULE_SETUP
  2571. { yylval=">";    return('>'); }
  2572.     YY_BREAK
  2573. case 213:
  2574. YY_RULE_SETUP
  2575. { yylval="^";    return('^'); }
  2576.     YY_BREAK
  2577. case 214:
  2578. YY_RULE_SETUP
  2579. { yylval="|";    return('|'); }
  2580.     YY_BREAK
  2581. case 215:
  2582. YY_RULE_SETUP
  2583. { yylval="?";    return('?'); }
  2584.     YY_BREAK
  2585. /* Variable / Function / Type names */
  2586. case 216:
  2587. YY_RULE_SETUP
  2588. {
  2589.                           yylval=CopyString(yytext);
  2590.                           if(IsAScopeVariable(yytext))
  2591.                              return(IDENTIFIER);
  2592.                           else
  2593.                              if(IsATypeName(yytext))
  2594.                                 return(TYPE_NAME);
  2595.                              else
  2596.                                 return(IDENTIFIER);
  2597.                         }
  2598.     YY_BREAK
  2599. /* Literals */
  2600. case 217:
  2601. YY_RULE_SETUP
  2602. { yylval=CopyString(yytext); return(LITERAL); }
  2603.     YY_BREAK
  2604. case 218:
  2605. YY_RULE_SETUP
  2606. { yylval=CopyString(yytext); return(LITERAL); } 
  2607.     YY_BREAK
  2608. case 219:
  2609. YY_RULE_SETUP
  2610. { yylval=CopyString(yytext); return(LITERAL); }
  2611.     YY_BREAK
  2612. case 220:
  2613. YY_RULE_SETUP
  2614. { yylval=CopyString(yytext); return(LITERAL); }
  2615.     YY_BREAK
  2616. case 221:
  2617. YY_RULE_SETUP
  2618. { yylval=CopyString(yytext); return(LITERAL); }
  2619.     YY_BREAK
  2620. case 222:
  2621. YY_RULE_SETUP
  2622. { yylval=CopyString(yytext); return(LITERAL); }
  2623.     YY_BREAK
  2624. case 223:
  2625. YY_RULE_SETUP
  2626. { yylval=CopyString(yytext); return(LITERAL); }
  2627.     YY_BREAK
  2628. case 224:
  2629. YY_RULE_SETUP
  2630. { yylval=CopyString(yytext); return(LITERAL); }
  2631.     YY_BREAK
  2632. case 225:
  2633. YY_RULE_SETUP
  2634. { yylval=CopyString(yytext); return(STRING_LITERAL); }
  2635.     YY_BREAK
  2636. case 226:
  2637. YY_RULE_SETUP
  2638. { yylval=CopyString(yytext); return(STRING_LITERAL); }
  2639.     YY_BREAK
  2640. /* Other text. */
  2641. case 227:
  2642. YY_RULE_SETUP
  2643. { parse_line++; }
  2644.     YY_BREAK
  2645. case 228:
  2646. YY_RULE_SETUP
  2647. { /* Ignore bad characters */ }
  2648.     YY_BREAK
  2649. case 229:
  2650. YY_RULE_SETUP
  2651. ECHO;
  2652.     YY_BREAK
  2653.             case YY_STATE_EOF(INITIAL):
  2654.             case YY_STATE_EOF(START_COMMENT):
  2655.             case YY_STATE_EOF(COMMENT):
  2656.             case YY_STATE_EOF(SPECIAL_COMMENT):
  2657.             case YY_STATE_EOF(START_COMMENT_CPP):
  2658.             case YY_STATE_EOF(COMMENT_CPP):
  2659.             case YY_STATE_EOF(SPECIAL_COMMENT_CPP):
  2660.             case YY_STATE_EOF(CPP):
  2661.             case YY_STATE_EOF(CPP_START):
  2662.             case YY_STATE_EOF(CPP_INCLUDE):
  2663.             case YY_STATE_EOF(CPP_INC_FILE):
  2664.             case YY_STATE_EOF(CPP_INC_FLAGS):
  2665.             case YY_STATE_EOF(CPP_DEFINE):
  2666.             case YY_STATE_EOF(CPP_DEFINE_ARGP):
  2667.             case YY_STATE_EOF(CPP_DEFINE_BODY):
  2668.             case YY_STATE_EOF(CPP_DEFINE_ARGS):
  2669.             case YY_STATE_EOF(GNU_LABEL):
  2670.             case YY_STATE_EOF(GNU_ATTRIBUTE):
  2671.             case YY_STATE_EOF(GNU_EXTENSION):
  2672.             case YY_STATE_EOF(GNU_TYPEOF):
  2673.                 yyterminate();
  2674.  
  2675.     case YY_END_OF_BUFFER:
  2676.         {
  2677.         /* Amount of text matched not including the EOB char. */
  2678.         int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
  2679.  
  2680.         /* Undo the effects of YY_DO_BEFORE_ACTION. */
  2681.         *yy_cp = yy_hold_char;
  2682.         YY_RESTORE_YY_MORE_OFFSET
  2683.  
  2684.         if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
  2685.             {
  2686.             /* We're scanning a new file or input source.  It's
  2687.              * possible that this happened because the user
  2688.              * just pointed yyin at a new source and called
  2689.              * yylex().  If so, then we have to assure
  2690.              * consistency between yy_current_buffer and our
  2691.              * globals.  Here is the right place to do so, because
  2692.              * this is the first action (other than possibly a
  2693.              * back-up) that will match for the new input source.
  2694.              */
  2695.             yy_n_chars = yy_current_buffer->yy_n_chars;
  2696.             yy_current_buffer->yy_input_file = yyin;
  2697.             yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
  2698.             }
  2699.  
  2700.         /* Note that here we test for yy_c_buf_p "<=" to the position
  2701.          * of the first EOB in the buffer, since yy_c_buf_p will
  2702.          * already have been incremented past the NUL character
  2703.          * (since all states make transitions on EOB to the
  2704.          * end-of-buffer state).  Contrast this with the test
  2705.          * in input().
  2706.          */
  2707.         if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  2708.             { /* This was really a NUL. */
  2709.             yy_state_type yy_next_state;
  2710.  
  2711.             yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
  2712.  
  2713.             yy_current_state = yy_get_previous_state();
  2714.  
  2715.             /* Okay, we're now positioned to make the NUL
  2716.              * transition.  We couldn't have
  2717.              * yy_get_previous_state() go ahead and do it
  2718.              * for us because it doesn't know how to deal
  2719.              * with the possibility of jamming (and we don't
  2720.              * want to build jamming into it because then it
  2721.              * will run more slowly).
  2722.              */
  2723.  
  2724.             yy_next_state = yy_try_NUL_trans( yy_current_state );
  2725.  
  2726.             yy_bp = yytext_ptr + YY_MORE_ADJ;
  2727.  
  2728.             if ( yy_next_state )
  2729.                 {
  2730.                 /* Consume the NUL. */
  2731.                 yy_cp = ++yy_c_buf_p;
  2732.                 yy_current_state = yy_next_state;
  2733.                 goto yy_match;
  2734.                 }
  2735.  
  2736.             else
  2737.                 {
  2738.                 yy_cp = yy_c_buf_p;
  2739.                 goto yy_find_action;
  2740.                 }
  2741.             }
  2742.  
  2743.         else switch ( yy_get_next_buffer() )
  2744.             {
  2745.             case EOB_ACT_END_OF_FILE:
  2746.                 {
  2747.                 yy_did_buffer_switch_on_eof = 0;
  2748.  
  2749.                 if ( yywrap() )
  2750.                     {
  2751.                     /* Note: because we've taken care in
  2752.                      * yy_get_next_buffer() to have set up
  2753.                      * yytext, we can now set up
  2754.                      * yy_c_buf_p so that if some total
  2755.                      * hoser (like flex itself) wants to
  2756.                      * call the scanner after we return the
  2757.                      * YY_NULL, it'll still work - another
  2758.                      * YY_NULL will get returned.
  2759.                      */
  2760.                     yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
  2761.  
  2762.                     yy_act = YY_STATE_EOF(YY_START);
  2763.                     goto do_action;
  2764.                     }
  2765.  
  2766.                 else
  2767.                     {
  2768.                     if ( ! yy_did_buffer_switch_on_eof )
  2769.                         YY_NEW_FILE;
  2770.                     }
  2771.                 break;
  2772.                 }
  2773.  
  2774.             case EOB_ACT_CONTINUE_SCAN:
  2775.                 yy_c_buf_p =
  2776.                     yytext_ptr + yy_amount_of_matched_text;
  2777.  
  2778.                 yy_current_state = yy_get_previous_state();
  2779.  
  2780.                 yy_cp = yy_c_buf_p;
  2781.                 yy_bp = yytext_ptr + YY_MORE_ADJ;
  2782.                 goto yy_match;
  2783.  
  2784.             case EOB_ACT_LAST_MATCH:
  2785.                 yy_c_buf_p =
  2786.                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
  2787.  
  2788.                 yy_current_state = yy_get_previous_state();
  2789.  
  2790.                 yy_cp = yy_c_buf_p;
  2791.                 yy_bp = yytext_ptr + YY_MORE_ADJ;
  2792.                 goto yy_find_action;
  2793.             }
  2794.         break;
  2795.         }
  2796.  
  2797.     default:
  2798.         YY_FATAL_ERROR(
  2799.             "fatal flex scanner internal error--no action found" );
  2800.     } /* end of action switch */
  2801.         } /* end of scanning one token */
  2802.     } /* end of yylex */
  2803.  
  2804.  
  2805. /* yy_get_next_buffer - try to read in a new buffer
  2806.  *
  2807.  * Returns a code representing an action:
  2808.  *    EOB_ACT_LAST_MATCH -
  2809.  *    EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  2810.  *    EOB_ACT_END_OF_FILE - end of file
  2811.  */
  2812.  
  2813. static int yy_get_next_buffer()
  2814.     {
  2815.     register char *dest = yy_current_buffer->yy_ch_buf;
  2816.     register char *source = yytext_ptr;
  2817.     register int number_to_move, i;
  2818.     int ret_val;
  2819.  
  2820.     if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
  2821.         YY_FATAL_ERROR(
  2822.         "fatal flex scanner internal error--end of buffer missed" );
  2823.  
  2824.     if ( yy_current_buffer->yy_fill_buffer == 0 )
  2825.         { /* Don't try to fill the buffer, so this is an EOF. */
  2826.         if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
  2827.             {
  2828.             /* We matched a single character, the EOB, so
  2829.              * treat this as a final EOF.
  2830.              */
  2831.             return EOB_ACT_END_OF_FILE;
  2832.             }
  2833.  
  2834.         else
  2835.             {
  2836.             /* We matched some text prior to the EOB, first
  2837.              * process it.
  2838.              */
  2839.             return EOB_ACT_LAST_MATCH;
  2840.             }
  2841.         }
  2842.  
  2843.     /* Try to read more data. */
  2844.  
  2845.     /* First move last chars to start of buffer. */
  2846.     number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
  2847.  
  2848.     for ( i = 0; i < number_to_move; ++i )
  2849.         *(dest++) = *(source++);
  2850.  
  2851.     if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  2852.         /* don't do the read, it's not guaranteed to return an EOF,
  2853.          * just force an EOF
  2854.          */
  2855.         yy_current_buffer->yy_n_chars = yy_n_chars = 0;
  2856.  
  2857.     else
  2858.         {
  2859.         int num_to_read =
  2860.             yy_current_buffer->yy_buf_size - number_to_move - 1;
  2861.  
  2862.         while ( num_to_read <= 0 )
  2863.             { /* Not enough room in the buffer - grow it. */
  2864. #ifdef YY_USES_REJECT
  2865.             YY_FATAL_ERROR(
  2866. "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
  2867. #else
  2868.  
  2869.             /* just a shorter name for the current buffer */
  2870.             YY_BUFFER_STATE b = yy_current_buffer;
  2871.  
  2872.             int yy_c_buf_p_offset =
  2873.                 (int) (yy_c_buf_p - b->yy_ch_buf);
  2874.  
  2875.             if ( b->yy_is_our_buffer )
  2876.                 {
  2877.                 int new_size = b->yy_buf_size * 2;
  2878.  
  2879.                 if ( new_size <= 0 )
  2880.                     b->yy_buf_size += b->yy_buf_size / 8;
  2881.                 else
  2882.                     b->yy_buf_size *= 2;
  2883.  
  2884.                 b->yy_ch_buf = (char *)
  2885.                     /* Include room in for 2 EOB chars. */
  2886.                     yy_flex_realloc( (void *) b->yy_ch_buf,
  2887.                              b->yy_buf_size + 2 );
  2888.                 }
  2889.             else
  2890.                 /* Can't grow it, we don't own it. */
  2891.                 b->yy_ch_buf = 0;
  2892.  
  2893.             if ( ! b->yy_ch_buf )
  2894.                 YY_FATAL_ERROR(
  2895.                 "fatal error - scanner input buffer overflow" );
  2896.  
  2897.             yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
  2898.  
  2899.             num_to_read = yy_current_buffer->yy_buf_size -
  2900.                         number_to_move - 1;
  2901. #endif
  2902.             }
  2903.  
  2904.         if ( num_to_read > YY_READ_BUF_SIZE )
  2905.             num_to_read = YY_READ_BUF_SIZE;
  2906.  
  2907.         /* Read in more data. */
  2908.         YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
  2909.             yy_n_chars, num_to_read );
  2910.  
  2911.         yy_current_buffer->yy_n_chars = yy_n_chars;
  2912.         }
  2913.  
  2914.     if ( yy_n_chars == 0 )
  2915.         {
  2916.         if ( number_to_move == YY_MORE_ADJ )
  2917.             {
  2918.             ret_val = EOB_ACT_END_OF_FILE;
  2919.             yyrestart( yyin );
  2920.             }
  2921.  
  2922.         else
  2923.             {
  2924.             ret_val = EOB_ACT_LAST_MATCH;
  2925.             yy_current_buffer->yy_buffer_status =
  2926.                 YY_BUFFER_EOF_PENDING;
  2927.             }
  2928.         }
  2929.  
  2930.     else
  2931.         ret_val = EOB_ACT_CONTINUE_SCAN;
  2932.  
  2933.     yy_n_chars += number_to_move;
  2934.     yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  2935.     yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  2936.  
  2937.     yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
  2938.  
  2939.     return ret_val;
  2940.     }
  2941.  
  2942.  
  2943. /* yy_get_previous_state - get the state just before the EOB char was reached */
  2944.  
  2945. static yy_state_type yy_get_previous_state()
  2946.     {
  2947.     register yy_state_type yy_current_state;
  2948.     register char *yy_cp;
  2949.  
  2950.     yy_current_state = yy_start;
  2951.     yy_state_ptr = yy_state_buf;
  2952.     *yy_state_ptr++ = yy_current_state;
  2953.  
  2954.     for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
  2955.         {
  2956.         register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
  2957.         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  2958.             {
  2959.             yy_current_state = (int) yy_def[yy_current_state];
  2960.             if ( yy_current_state >= 711 )
  2961.                 yy_c = yy_meta[(unsigned int) yy_c];
  2962.             }
  2963.         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  2964.         *yy_state_ptr++ = yy_current_state;
  2965.         }
  2966.  
  2967.     return yy_current_state;
  2968.     }
  2969.  
  2970.  
  2971. /* yy_try_NUL_trans - try to make a transition on the NUL character
  2972.  *
  2973.  * synopsis
  2974.  *    next_state = yy_try_NUL_trans( current_state );
  2975.  */
  2976.  
  2977. #ifdef YY_USE_PROTOS
  2978. static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
  2979. #else
  2980. static yy_state_type yy_try_NUL_trans( yy_current_state )
  2981. yy_state_type yy_current_state;
  2982. #endif
  2983.     {
  2984.     register int yy_is_jam;
  2985.  
  2986.     register YY_CHAR yy_c = 1;
  2987.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  2988.         {
  2989.         yy_current_state = (int) yy_def[yy_current_state];
  2990.         if ( yy_current_state >= 711 )
  2991.             yy_c = yy_meta[(unsigned int) yy_c];
  2992.         }
  2993.     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  2994.     yy_is_jam = (yy_current_state == 710);
  2995.     if ( ! yy_is_jam )
  2996.         *yy_state_ptr++ = yy_current_state;
  2997.  
  2998.     return yy_is_jam ? 0 : yy_current_state;
  2999.     }
  3000.  
  3001.  
  3002. #ifndef YY_NO_UNPUT
  3003. #ifdef YY_USE_PROTOS
  3004. static void yyunput( int c, register char *yy_bp )
  3005. #else
  3006. static void yyunput( c, yy_bp )
  3007. int c;
  3008. register char *yy_bp;
  3009. #endif
  3010.     {
  3011.     register char *yy_cp = yy_c_buf_p;
  3012.  
  3013.     /* undo effects of setting up yytext */
  3014.     *yy_cp = yy_hold_char;
  3015.  
  3016.     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  3017.         { /* need to shift things up to make room */
  3018.         /* +2 for EOB chars. */
  3019.         register int number_to_move = yy_n_chars + 2;
  3020.         register char *dest = &yy_current_buffer->yy_ch_buf[
  3021.                     yy_current_buffer->yy_buf_size + 2];
  3022.         register char *source =
  3023.                 &yy_current_buffer->yy_ch_buf[number_to_move];
  3024.  
  3025.         while ( source > yy_current_buffer->yy_ch_buf )
  3026.             *--dest = *--source;
  3027.  
  3028.         yy_cp += (int) (dest - source);
  3029.         yy_bp += (int) (dest - source);
  3030.         yy_current_buffer->yy_n_chars =
  3031.             yy_n_chars = yy_current_buffer->yy_buf_size;
  3032.  
  3033.         if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  3034.             YY_FATAL_ERROR( "flex scanner push-back overflow" );
  3035.         }
  3036.  
  3037.     *--yy_cp = (char) c;
  3038.  
  3039.  
  3040.     yytext_ptr = yy_bp;
  3041.     yy_hold_char = *yy_cp;
  3042.     yy_c_buf_p = yy_cp;
  3043.     }
  3044. #endif    /* ifndef YY_NO_UNPUT */
  3045.  
  3046.  
  3047. #ifdef __cplusplus
  3048. static int yyinput()
  3049. #else
  3050. static int input()
  3051. #endif
  3052.     {
  3053.     int c;
  3054.  
  3055.     *yy_c_buf_p = yy_hold_char;
  3056.  
  3057.     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  3058.         {
  3059.         /* yy_c_buf_p now points to the character we want to return.
  3060.          * If this occurs *before* the EOB characters, then it's a
  3061.          * valid NUL; if not, then we've hit the end of the buffer.
  3062.          */
  3063.         if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  3064.             /* This was really a NUL. */
  3065.             *yy_c_buf_p = '\0';
  3066.  
  3067.         else
  3068.             { /* need more input */
  3069.             int offset = yy_c_buf_p - yytext_ptr;
  3070.             ++yy_c_buf_p;
  3071.  
  3072.             switch ( yy_get_next_buffer() )
  3073.                 {
  3074.                 case EOB_ACT_LAST_MATCH:
  3075.                     /* This happens because yy_g_n_b()
  3076.                      * sees that we've accumulated a
  3077.                      * token and flags that we need to
  3078.                      * try matching the token before
  3079.                      * proceeding.  But for input(),
  3080.                      * there's no matching to consider.
  3081.                      * So convert the EOB_ACT_LAST_MATCH
  3082.                      * to EOB_ACT_END_OF_FILE.
  3083.                      */
  3084.  
  3085.                     /* Reset buffer status. */
  3086.                     yyrestart( yyin );
  3087.  
  3088.                     /* fall through */
  3089.  
  3090.                 case EOB_ACT_END_OF_FILE:
  3091.                     {
  3092.                     if ( yywrap() )
  3093.                         return EOF;
  3094.  
  3095.                     if ( ! yy_did_buffer_switch_on_eof )
  3096.                         YY_NEW_FILE;
  3097. #ifdef __cplusplus
  3098.                     return yyinput();
  3099. #else
  3100.                     return input();
  3101. #endif
  3102.                     }
  3103.  
  3104.                 case EOB_ACT_CONTINUE_SCAN:
  3105.                     yy_c_buf_p = yytext_ptr + offset;
  3106.                     break;
  3107.                 }
  3108.             }
  3109.         }
  3110.  
  3111.     c = *(unsigned char *) yy_c_buf_p;    /* cast for 8-bit char's */
  3112.     *yy_c_buf_p = '\0';    /* preserve yytext */
  3113.     yy_hold_char = *++yy_c_buf_p;
  3114.  
  3115.  
  3116.     return c;
  3117.     }
  3118.  
  3119.  
  3120. #ifdef YY_USE_PROTOS
  3121. void yyrestart( FILE *input_file )
  3122. #else
  3123. void yyrestart( input_file )
  3124. FILE *input_file;
  3125. #endif
  3126.     {
  3127.     if ( ! yy_current_buffer )
  3128.         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
  3129.  
  3130.     yy_init_buffer( yy_current_buffer, input_file );
  3131.     yy_load_buffer_state();
  3132.     }
  3133.  
  3134.  
  3135. #ifdef YY_USE_PROTOS
  3136. void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
  3137. #else
  3138. void yy_switch_to_buffer( new_buffer )
  3139. YY_BUFFER_STATE new_buffer;
  3140. #endif
  3141.     {
  3142.     if ( yy_current_buffer == new_buffer )
  3143.         return;
  3144.  
  3145.     if ( yy_current_buffer )
  3146.         {
  3147.         /* Flush out information for old buffer. */
  3148.         *yy_c_buf_p = yy_hold_char;
  3149.         yy_current_buffer->yy_buf_pos = yy_c_buf_p;
  3150.         yy_current_buffer->yy_n_chars = yy_n_chars;
  3151.         }
  3152.  
  3153.     yy_current_buffer = new_buffer;
  3154.     yy_load_buffer_state();
  3155.  
  3156.     /* We don't actually know whether we did this switch during
  3157.      * EOF (yywrap()) processing, but the only time this flag
  3158.      * is looked at is after yywrap() is called, so it's safe
  3159.      * to go ahead and always set it.
  3160.      */
  3161.     yy_did_buffer_switch_on_eof = 1;
  3162.     }
  3163.  
  3164.  
  3165. #ifdef YY_USE_PROTOS
  3166. void yy_load_buffer_state( void )
  3167. #else
  3168. void yy_load_buffer_state()
  3169. #endif
  3170.     {
  3171.     yy_n_chars = yy_current_buffer->yy_n_chars;
  3172.     yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
  3173.     yyin = yy_current_buffer->yy_input_file;
  3174.     yy_hold_char = *yy_c_buf_p;
  3175.     }
  3176.  
  3177.  
  3178. #ifdef YY_USE_PROTOS
  3179. YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
  3180. #else
  3181. YY_BUFFER_STATE yy_create_buffer( file, size )
  3182. FILE *file;
  3183. int size;
  3184. #endif
  3185.     {
  3186.     YY_BUFFER_STATE b;
  3187.  
  3188.     b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
  3189.     if ( ! b )
  3190.         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  3191.  
  3192.     b->yy_buf_size = size;
  3193.  
  3194.     /* yy_ch_buf has to be 2 characters longer than the size given because
  3195.      * we need to put in 2 end-of-buffer characters.
  3196.      */
  3197.     b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
  3198.     if ( ! b->yy_ch_buf )
  3199.         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  3200.  
  3201.     b->yy_is_our_buffer = 1;
  3202.  
  3203.     yy_init_buffer( b, file );
  3204.  
  3205.     return b;
  3206.     }
  3207.  
  3208.  
  3209. #ifdef YY_USE_PROTOS
  3210. void yy_delete_buffer( YY_BUFFER_STATE b )
  3211. #else
  3212. void yy_delete_buffer( b )
  3213. YY_BUFFER_STATE b;
  3214. #endif
  3215.     {
  3216.     if ( ! b )
  3217.         return;
  3218.  
  3219.     if ( b == yy_current_buffer )
  3220.         yy_current_buffer = (YY_BUFFER_STATE) 0;
  3221.  
  3222.     if ( b->yy_is_our_buffer )
  3223.         yy_flex_free( (void *) b->yy_ch_buf );
  3224.  
  3225.     yy_flex_free( (void *) b );
  3226.     }
  3227.  
  3228.  
  3229. #ifndef YY_ALWAYS_INTERACTIVE
  3230. #ifndef YY_NEVER_INTERACTIVE
  3231. extern int isatty YY_PROTO(( int ));
  3232. #endif
  3233. #endif
  3234.  
  3235. #ifdef YY_USE_PROTOS
  3236. void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
  3237. #else
  3238. void yy_init_buffer( b, file )
  3239. YY_BUFFER_STATE b;
  3240. FILE *file;
  3241. #endif
  3242.  
  3243.  
  3244.     {
  3245.     yy_flush_buffer( b );
  3246.  
  3247.     b->yy_input_file = file;
  3248.     b->yy_fill_buffer = 1;
  3249.  
  3250. #if YY_ALWAYS_INTERACTIVE
  3251.     b->yy_is_interactive = 1;
  3252. #else
  3253. #if YY_NEVER_INTERACTIVE
  3254.     b->yy_is_interactive = 0;
  3255. #else
  3256.     b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
  3257. #endif
  3258. #endif
  3259.     }
  3260.  
  3261.  
  3262. #ifdef YY_USE_PROTOS
  3263. void yy_flush_buffer( YY_BUFFER_STATE b )
  3264. #else
  3265. void yy_flush_buffer( b )
  3266. YY_BUFFER_STATE b;
  3267. #endif
  3268.  
  3269.     {
  3270.     if ( ! b )
  3271.         return;
  3272.  
  3273.     b->yy_n_chars = 0;
  3274.  
  3275.     /* We always need two end-of-buffer characters.  The first causes
  3276.      * a transition to the end-of-buffer state.  The second causes
  3277.      * a jam in that state.
  3278.      */
  3279.     b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
  3280.     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  3281.  
  3282.     b->yy_buf_pos = &b->yy_ch_buf[0];
  3283.  
  3284.     b->yy_at_bol = 1;
  3285.     b->yy_buffer_status = YY_BUFFER_NEW;
  3286.  
  3287.     if ( b == yy_current_buffer )
  3288.         yy_load_buffer_state();
  3289.     }
  3290.  
  3291.  
  3292. #ifndef YY_NO_SCAN_BUFFER
  3293. #ifdef YY_USE_PROTOS
  3294. YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
  3295. #else
  3296. YY_BUFFER_STATE yy_scan_buffer( base, size )
  3297. char *base;
  3298. yy_size_t size;
  3299. #endif
  3300.     {
  3301.     YY_BUFFER_STATE b;
  3302.  
  3303.     if ( size < 2 ||
  3304.          base[size-2] != YY_END_OF_BUFFER_CHAR ||
  3305.          base[size-1] != YY_END_OF_BUFFER_CHAR )
  3306.         /* They forgot to leave room for the EOB's. */
  3307.         return 0;
  3308.  
  3309.     b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
  3310.     if ( ! b )
  3311.         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
  3312.  
  3313.     b->yy_buf_size = size - 2;    /* "- 2" to take care of EOB's */
  3314.     b->yy_buf_pos = b->yy_ch_buf = base;
  3315.     b->yy_is_our_buffer = 0;
  3316.     b->yy_input_file = 0;
  3317.     b->yy_n_chars = b->yy_buf_size;
  3318.     b->yy_is_interactive = 0;
  3319.     b->yy_at_bol = 1;
  3320.     b->yy_fill_buffer = 0;
  3321.     b->yy_buffer_status = YY_BUFFER_NEW;
  3322.  
  3323.     yy_switch_to_buffer( b );
  3324.  
  3325.     return b;
  3326.     }
  3327. #endif
  3328.  
  3329.  
  3330. #ifndef YY_NO_SCAN_STRING
  3331. #ifdef YY_USE_PROTOS
  3332. YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
  3333. #else
  3334. YY_BUFFER_STATE yy_scan_string( yy_str )
  3335. yyconst char *yy_str;
  3336. #endif
  3337.     {
  3338.     int len;
  3339.     for ( len = 0; yy_str[len]; ++len )
  3340.         ;
  3341.  
  3342.     return yy_scan_bytes( yy_str, len );
  3343.     }
  3344. #endif
  3345.  
  3346.  
  3347. #ifndef YY_NO_SCAN_BYTES
  3348. #ifdef YY_USE_PROTOS
  3349. YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
  3350. #else
  3351. YY_BUFFER_STATE yy_scan_bytes( bytes, len )
  3352. yyconst char *bytes;
  3353. int len;
  3354. #endif
  3355.     {
  3356.     YY_BUFFER_STATE b;
  3357.     char *buf;
  3358.     yy_size_t n;
  3359.     int i;
  3360.  
  3361.     /* Get memory for full buffer, including space for trailing EOB's. */
  3362.     n = len + 2;
  3363.     buf = (char *) yy_flex_alloc( n );
  3364.     if ( ! buf )
  3365.         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
  3366.  
  3367.     for ( i = 0; i < len; ++i )
  3368.         buf[i] = bytes[i];
  3369.  
  3370.     buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
  3371.  
  3372.     b = yy_scan_buffer( buf, n );
  3373.     if ( ! b )
  3374.         YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
  3375.  
  3376.     /* It's okay to grow etc. this buffer, and we should throw it
  3377.      * away when we're done.
  3378.      */
  3379.     b->yy_is_our_buffer = 1;
  3380.  
  3381.     return b;
  3382.     }
  3383. #endif
  3384.  
  3385.  
  3386. #ifndef YY_NO_PUSH_STATE
  3387. #ifdef YY_USE_PROTOS
  3388. static void yy_push_state( int new_state )
  3389. #else
  3390. static void yy_push_state( new_state )
  3391. int new_state;
  3392. #endif
  3393.     {
  3394.     if ( yy_start_stack_ptr >= yy_start_stack_depth )
  3395.         {
  3396.         yy_size_t new_size;
  3397.  
  3398.         yy_start_stack_depth += YY_START_STACK_INCR;
  3399.         new_size = yy_start_stack_depth * sizeof( int );
  3400.  
  3401.         if ( ! yy_start_stack )
  3402.             yy_start_stack = (int *) yy_flex_alloc( new_size );
  3403.  
  3404.         else
  3405.             yy_start_stack = (int *) yy_flex_realloc(
  3406.                     (void *) yy_start_stack, new_size );
  3407.  
  3408.         if ( ! yy_start_stack )
  3409.             YY_FATAL_ERROR(
  3410.             "out of memory expanding start-condition stack" );
  3411.         }
  3412.  
  3413.     yy_start_stack[yy_start_stack_ptr++] = YY_START;
  3414.  
  3415.     BEGIN(new_state);
  3416.     }
  3417. #endif
  3418.  
  3419.  
  3420. #ifndef YY_NO_POP_STATE
  3421. static void yy_pop_state()
  3422.     {
  3423.     if ( --yy_start_stack_ptr < 0 )
  3424.         YY_FATAL_ERROR( "start-condition stack underflow" );
  3425.  
  3426.     BEGIN(yy_start_stack[yy_start_stack_ptr]);
  3427.     }
  3428. #endif
  3429.  
  3430.  
  3431. #ifndef YY_NO_TOP_STATE
  3432. static int yy_top_state()
  3433.     {
  3434.     return yy_start_stack[yy_start_stack_ptr - 1];
  3435.     }
  3436. #endif
  3437.  
  3438. #ifndef YY_EXIT_FAILURE
  3439. #define YY_EXIT_FAILURE 2
  3440. #endif
  3441.  
  3442. #ifdef YY_USE_PROTOS
  3443. static void yy_fatal_error( yyconst char msg[] )
  3444. #else
  3445. static void yy_fatal_error( msg )
  3446. char msg[];
  3447. #endif
  3448.     {
  3449.     (void) fprintf( stderr, "%s\n", msg );
  3450.     exit( YY_EXIT_FAILURE );
  3451.     }
  3452.  
  3453.  
  3454.  
  3455. /* Redefine yyless() so it works in section 3 code. */
  3456.  
  3457. #undef yyless
  3458. #define yyless(n) \
  3459.     do \
  3460.         { \
  3461.         /* Undo effects of setting up yytext. */ \
  3462.         yytext[yyleng] = yy_hold_char; \
  3463.         yy_c_buf_p = yytext + n; \
  3464.         yy_hold_char = *yy_c_buf_p; \
  3465.         *yy_c_buf_p = '\0'; \
  3466.         yyleng = n; \
  3467.         } \
  3468.     while ( 0 )
  3469.  
  3470.  
  3471. /* Internal utility routines. */
  3472.  
  3473. #ifndef yytext_ptr
  3474. #ifdef YY_USE_PROTOS
  3475. static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
  3476. #else
  3477. static void yy_flex_strncpy( s1, s2, n )
  3478. char *s1;
  3479. yyconst char *s2;
  3480. int n;
  3481. #endif
  3482.     {
  3483.     register int i;
  3484.     for ( i = 0; i < n; ++i )
  3485.         s1[i] = s2[i];
  3486.     }
  3487. #endif
  3488.  
  3489. #ifdef YY_NEED_STRLEN
  3490. #ifdef YY_USE_PROTOS
  3491. static int yy_flex_strlen( yyconst char *s )
  3492. #else
  3493. static int yy_flex_strlen( s )
  3494. yyconst char *s;
  3495. #endif
  3496.     {
  3497.     register int n;
  3498.     for ( n = 0; s[n]; ++n )
  3499.         ;
  3500.  
  3501.     return n;
  3502.     }
  3503. #endif
  3504.  
  3505.  
  3506. #ifdef YY_USE_PROTOS
  3507. static void *yy_flex_alloc( yy_size_t size )
  3508. #else
  3509. static void *yy_flex_alloc( size )
  3510. yy_size_t size;
  3511. #endif
  3512.     {
  3513.     return (void *) malloc( size );
  3514.     }
  3515.  
  3516. #ifdef YY_USE_PROTOS
  3517. static void *yy_flex_realloc( void *ptr, yy_size_t size )
  3518. #else
  3519. static void *yy_flex_realloc( ptr, size )
  3520. void *ptr;
  3521. yy_size_t size;
  3522. #endif
  3523.     {
  3524.     /* The cast to (char *) in the following accommodates both
  3525.      * implementations that use char* generic pointers, and those
  3526.      * that use void* generic pointers.  It works with the latter
  3527.      * because both ANSI C and C++ allow castless assignment from
  3528.      * any pointer type to void*, and deal with argument conversions
  3529.      * as though doing an assignment.
  3530.      */
  3531.     return (void *) realloc( (char *) ptr, size );
  3532.     }
  3533.  
  3534. #ifdef YY_USE_PROTOS
  3535. static void yy_flex_free( void *ptr )
  3536. #else
  3537. static void yy_flex_free( ptr )
  3538. void *ptr;
  3539. #endif
  3540.     {
  3541.     free( ptr );
  3542.     }
  3543.  
  3544. #if YY_MAIN
  3545. int main()
  3546.     {
  3547.     yylex();
  3548.     return 0;
  3549.     }
  3550. #endif
  3551.  
  3552.